C# 将动态强制转换为ObjectHandle会引发RuntimeBinderException
我试图在运行时使用广为宣传的C# 将动态强制转换为ObjectHandle会引发RuntimeBinderException,c#,C#,我试图在运行时使用广为宣传的type-acquiredobjecttype=((ObjectHandle)acquireddynamicobject.Unwrap().GetType()方法来确定动态对象的类型但是我得到了ObjectHandle转换的RuntimeBinderException,我不知道为什么 下面的代码也抛出了相同的错误 string myString = "ASF"; dynamic myDynamic = myString; ObjectHandle dd = (Obje
type-acquiredobjecttype=((ObjectHandle)acquireddynamicobject.Unwrap().GetType()方法来确定动态对象的类型代码>但是我得到了ObjectHandle转换的RuntimeBinderException,我不知道为什么
下面的代码也抛出了相同的错误
string myString = "ASF";
dynamic myDynamic = myString;
ObjectHandle dd = (ObjectHandle)myDynamic;
抛出:“无法将类型“string”转换为“System.Runtime.Remoting.ObjectHandle”
奇怪的是,我在上一个工作场所使用过它,它很好!使用.NET framework 4.5(并在稍后试用)。有什么想法吗?为什么要走复杂的路呢!?只需执行以下操作:
Type myDynamicType = myDynamic.GetType();
Console.WriteLine(myDynamicType); // Output is System.String
可能是Google搜索lol中的第一个热门…尝试了你的示例,显然,它工作得很好。不确定为什么在使用GetType()方法时推荐使用cast to ObjectHandle…谢谢Nikhilvartak