我需要提取所有不可枚举的公共(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/

10-10 05:18