3
私有属性我有使用反射来设置对象的属性,e.g像这样一些很老的代码:设置类
var properties = obj.GetType().GetProperties(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
foreach (var property in properties)
{
property.SetValue(obj, lookup[property.Name]);
}
我在想更换代码,使其更快。但是因为上面的代码也允许设置对象的私有属性,所以我不确定还有其他选项。
问题:
- 我是正确,已编译的表达式(使用System.Linq.Expressions)和生成的代码(使用的CodeDOM/Microsoft.CSharp.CSharpCodeProvider)不能用于设置专用属性?
- 使用Reflection.Emit可以吗?
- 是否有任何映射库(AutoMapper,ValueInjecter)对此有帮助(我不知道他们在内部使用什么技术)?
- 还有其他的选择吗?
谢谢,我会看看它。 – M4N 2011-03-08 13:46:08