将动态强制转换为ObjectHandle会抛出RuntimeBinderException

时间:2016-04-13 20:23:08

标签: c#

我尝试使用Type obtainedObjectType = ((ObjectHandle)obtainedDynamicObject).Unwrap().GetType();广泛宣传的方式在运行时确定动态类型,但是为ObjectHandle转换得到了RuntimeBinderException,我不知道为什么。

以下内容也会引发同样的错误;

string myString = "ASF";
dynamic myDynamic = myString;
ObjectHandle dd = (ObjectHandle)myDynamic;

抛出:"无法转换类型'字符串'到' System.Runtime.Remoting.ObjectHandle'

奇怪的是我在上一个工作场所使用过它很好!使用.NET framework 4.5(稍后尝试)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为什么要采取复杂的方式!?只是做:

Type myDynamicType = myDynamic.GetType();
Console.WriteLine(myDynamicType); // Output is System.String