c# - FastMember 用法

标签 c# reflection fastmember

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

相关文章:

c# - 模拟 UserPrincipal

c# - HTML 解析器验证标签

c# - SqlBulkCopy 无法将值 NULL 插入到列中

c# - 如何使用 FastMember 设置嵌套属性值

c# - 如何使用 Fast Member 将数据批量复制到列名不一致的表中?

c# - WebBrowser 控件 HTMLDocument 自动选择选项下拉

c# - 使用 C# ServiceController 和模拟启动/停止 Windows 服务

ruby-on-rails - Ruby:使用字符串访问成员变量(反射)

vb.net - 用于循环类属性的 Lambda 表达式

c# - 为什么 GetProperties 两次列出 protected 属性(在通用基类中声明)?