我不确定它是否受支持,但我试图让 fastmember 给我动态的类型信息ExpandoObject
(使用下面的代码)并且我收到错误:
System.NotSupportedException:不支持指定的方法。在 FastMember.TypeAccessor.GetMembers() 在 System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,Tret](CallSite 站点,T0 arg0)
匿名dynamic
类型的第二个测试工作正常,但由于某种原因它不适用于ExpandoObject
. 这应该是可能的吗?如果不是,我可以通过使用字典实现来考虑替代解决方案,ExpandoObject
但对所有内容使用相同的代码会很好。
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]