7

我需要提取所有不可枚举的公共读写属性,除非它们是字符串。目前这是通过 refelction 完成的,并且想知道这是否可以通过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]);
            }
        }
    }
    ...
}
4

1 回答 1

0

据我了解,member.Type从 FastMember 返回的是属性或方法的返回类型。它不应该PropertyInfo像您在代码中检查的那样。_accessor[originator, member.Name]应该返回属性的当前值。

于 2014-03-26T17:37:32.370 回答