我需要提取所有不可枚举的公共(public)读写属性,除非它们是字符串。目前这是通过反射完成的,想知道这是否可以用 FastMember 完成.
我尝试了类似下面的代码,但它没有达到我想要的效果。我可以使用当前版本的 FastMember 执行此操作吗?
干杯,
贝瑞尔
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]);
}
}
}
...
}
最佳答案
据我了解,从 FastMember 返回的 member.Type
是属性或方法的返回类型。它永远不应该是您在代码中检查的 PropertyInfo
。 _accessor[originator, member.Name]
应该返回属性的当前值。
关于c# - FastMember 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350567/