Ber*_*ryl 5 c# reflection fastmember
我需要提取所有不可枚举的公共读写属性,除非它们是字符串.目前这是通过refelction完成的,并想知道是否可以使用FastMember完成.
我试过类似下面的代码,但它没有做我想要的.我可以使用当前版本的FastMember吗?
干杯,
Berryl
protected void LoadCache(IHaveEditableStateProperties originator) {
var type = originator.GetType();
_accessor = TypeAccessor.Create(type);
var members = _accessor.GetMembers();
_editableState = new Dictionary<string, object>();
foreach (var member in members) {
if(member.Type == typeof(PropertyInfo)) {
_editableState.Add(member.Name, _accessor[originator, member.Name]);
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
据我了解,member.Type从 FastMember 返回的是属性或方法的返回类型。它永远不应该PropertyInfo像您在代码中检查的那样。_accessor[originator, member.Name]应该返回属性的当前值。