【发布时间】:2014-06-05 10:21:46
【问题描述】:
我使用这个方法来获取方法中某个属性的值:
public static T Decrypt<T>(Func<T> prop, string username, string password)
{
T value = prop();
//do cool stuff with t
return value;
}
我正在寻找另一种方式,设置我的属性的值
public static void Encrypt<T>(Func<T> prop, T value, string username, string password)
{
//do stuff with value
??? set prop ???
}
我已经搜索并尝试了表达式,但云无法让它工作:
public static void Encrypt<T>(Expression<Func<T>> property, T value, string username, string password)
{
//do stuff with value
var propertyInfo = ((MemberExpression)property.Body).Member as PropertyInfo;
propertyInfo.SetValue(property, value);
}
【问题讨论】:
-
你能发布
set场景的通话代码吗?换句话说:你怎么称呼Decrypt? -
加密方法必须使用
Func<T>委托还是可以使用其他方法? -
@Dirk 不,我可以使用不同的
-
那么我会建议与@WolfgangZiegler 相同的解决方案