サポートされているかどうかはわかりませんが、動的の型情報を取得するために fastmember を取得しようとしてExpandoObject
います (以下のコードを使用)。エラーが発生します。
System.NotSupportedException: 指定されたメソッドはサポートされていません。FastMember.TypeAccessor.GetMembers() で System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0,TRet] (CallSite サイト、T0 arg0)
匿名dynamic
型の 2 番目のテストは問題なく動作しますが、何らかの理由で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】