Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I once made this class. Perhaps it helps:</p> <pre><code>public class GetterSetter&lt;EntityType,propType&gt; { private readonly Func&lt;EntityType, propType&gt; getter; private readonly Action&lt;EntityType, propType&gt; setter; private readonly string propertyName; private readonly Expression&lt;Func&lt;EntityType, propType&gt;&gt; propertyNameExpression; public EntityType Entity { get; set; } public GetterSetter(EntityType entity, Expression&lt;Func&lt;EntityType, propType&gt;&gt; property_NameExpression) { Entity = entity; propertyName = GetPropertyName(property_NameExpression); propertyNameExpression = property_NameExpression; //Create Getter getter = propertyNameExpression.Compile(); // Create Setter() MethodInfo method = typeof (EntityType).GetProperty(propertyName).GetSetMethod(); setter = (Action&lt;EntityType, propType&gt;) Delegate.CreateDelegate(typeof(Action&lt;EntityType, propType&gt;), method); } public propType Value { get { return getter(Entity); } set { setter(Entity, value); } } protected string GetPropertyName(LambdaExpression _propertyNameExpression) { var lambda = _propertyNameExpression as LambdaExpression; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { var unaryExpression = lambda.Body as UnaryExpression; memberExpression = unaryExpression.Operand as MemberExpression; } else { memberExpression = lambda.Body as MemberExpression; } var propertyInfo = memberExpression.Member as PropertyInfo; return propertyInfo.Name; } </code></pre> <p>test:</p> <pre><code>var gs = new GetterSetter&lt;OnOffElement,bool&gt;(new OnOffElement(), item =&gt; item.IsOn); gs.Value = true; var result = gs.Value; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload