首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FastMember和ExpandoObject误差

FastMember和ExpandoObject误差
EN

Stack Overflow用户
提问于 2016-09-12 16:39:41
回答 1查看 466关注 0票数 2

我不确定它是否被支持,但是我试图让for成员给我一个动态ExpandoObject的类型信息(使用下面的代码),我得到了错误:

System.NotSupportedException:不支持指定的方法。在System.Dynamic.UpdateDelegates.UpdateAndExecute1T0,TRet的FastMember.TypeAccessor.GetMembers()

匿名dynamic类型的第二个测试运行良好,但由于某种原因,它不适用于ExpandoObject。这是可能的吗?我可以通过使用ExpandoObject字典实现来想出另一种解决方案--如果不是这样的话--对所有事情都使用相同的代码是很好的。

代码语言:javascript
复制
public class FastMemberTest
{
    [Fact]
    public void GetsMembersOfExpandoObject()
    {
        dynamic dyn = new ExpandoObject();
        dyn.Item1 = 1;
        dyn.Item2 = "Testing";
        var typeAccessor = TypeAccessor.Create(dyn.GetType());

        var members = typeAccessor.GetMembers();

        members.Should().NotBeNull();
    }

    [Fact]
    public void GetsMembersOfDynamicType()
    {
        dynamic dyn = new
        {
            Item1 = 1,
            Item2 = "Testing"
        };
        var typeAccessor = TypeAccessor.Create(dyn.GetType());

        var members = typeAccessor.GetMembers();

    }
}

测试是Xunit2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 17:30:42

最后,我编写了一个类,它模仿快速成员行为,但将扩展对象转换为IDictionary,并使用它。然后,只有在某个扩展对象被传递时才使用它,否则就使用Then成员。工作很好,替代实现实际上非常简单。

快速成员的抽象和隔离也有利于代码库的建立。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39454975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档