C# 如何使用FastMember获取动态对象的属性?

C# 如何使用FastMember获取动态对象的属性?,c#,dynamic,fastmember,C#,Dynamic,Fastmember,我的目标如下: dynamic person = new {Id = 1, Name = "SpiderMan"}; 我需要能够遍历属性名称,例如“Id”,“Name” 我还需要能够以最有效的方式实现这一点,因此我选择使用它,但是它的api不允许我遍历属性 有什么想法吗 [更新] 多亏了Marc,我成功地实现了我想要的: dynamic person = new { Id = 1, Name = "SpiderMan" }; MemberSet members = TypeAccessor.C

我的目标如下:

dynamic person = new {Id = 1, Name = "SpiderMan"};
我需要能够遍历属性名称,例如
“Id”
“Name”

我还需要能够以最有效的方式实现这一点,因此我选择使用它,但是它的api不允许我遍历属性

有什么想法吗

[更新]

多亏了Marc,我成功地实现了我想要的:

dynamic person = new { Id = 1, Name = "SpiderMan" };
MemberSet members = TypeAccessor.Create(person.GetType()).GetMembers();
foreach (Member item in members)
{
    // do whatever
}

对于您显示的场景,
TypeAccessor.Create(obj.GetType())
GetMember()
应该可以正常工作,因为该类型可以进行反射

在更一般的情况下:这是一个公平的问题-我真的不记得FastMember是否为真正的动态类型公开了这一点,但这里一个重要的考虑是,由于动态对象的本质,属性集甚至可能不可枚举-即代码可以动态响应
obj.无论什么
,事先不知道
任何事情。但是,对于实际拥有的对象,简单反射是最佳选择。您显示的场景不需要
dynamic

Tnx-Marc,
GetMembers()
非常适合我的场景。有没有计划将源代码从Google代码迁移到GitHub?再次感谢tnx为这个辉煌的图书馆。