C# 确定DynamicObject成员访问的预期类型
是否可以确定动态成员访问所需的类型?我试过了C# 确定DynamicObject成员访问的预期类型,c#,dynamic,dynamicobject,C#,Dynamic,Dynamicobject,是否可以确定动态成员访问所需的类型?我试过了 dynamic foo = new MyDynamicObject(); int x = foo.IntValue; int y = (int)foo.IntValue; 在TryGetMemberinterceptGetMemberBinder中,ReturnType是任意一种方式的对象。我还实现了TryConvert,想知道是否会调用它来进行转换,但它从未被命中 是否还有其他我缺少的覆盖,可以让我确定调用方想要的类型,以便我可以进行适当的转换?
dynamic foo = new MyDynamicObject();
int x = foo.IntValue;
int y = (int)foo.IntValue;
在TryGetMember
interceptGetMemberBinder中,ReturnType
是任意一种方式的对象。我还实现了TryConvert
,想知道是否会调用它来进行转换,但它从未被命中
是否还有其他我缺少的覆盖,可以让我确定调用方想要的类型,以便我可以进行适当的转换?在C#中,使用dynamic时,编译器总是将binder设置为对象的返回类型,然后对预期的返回类型进行第二次动态隐式转换。因此,当从c#调用DynamicObject时,GetMemberBinder.ReturnType始终是object,但也就是说,如果返回另一种springboard动态对象并实现TryConvert,则可以得到该类型,除非用户将var或dynamic
作为变量,然后他们有一个代理,在它变成静态类型之前不会做任何事情
做了一些不同的事情,但是沿着这些思路,因为它还希望有一个基于返回类型的动态实现——只需要通过接口描述动态对象