我使用FastMember作为反射的替代方案。在源代码中,我看到有一个匿名类型支持的单元测试,但当我尝试为匿名类型创建TypeMember.CreateNew()时,我得到了NotSupportedException。他们不受支持吗?
TypeMember
支持它们,但不支持它们-您应该使用ObjectAccessor
,如:
var obj = new {A = 123, B = "def"};
var accessor = ObjectAccessor.Create(obj);
Assert.AreEqual(123, accessor["A"]);
这个问题很老,但我也有同样的疑问,你可以简单地做:
var anon = new
{
Prop1 = "a",
Prop2 = "b"
};
MemberSet members =
TypeAccessor
.Create(anon.GetType())
.GetMembers();