我有DynamicObject
一个实现的TryConvert
方法。以下代码运行良好:
dynamic d = GetMyDynamic();
int i = (int)d; // TryConvert is called and returns the proper int value
但是,当 d 被强制转换为 object 时,转换在运行时会失败:
object o = d;
int i = (int)o; // TryConvert is not called. InvalidCastException thrown
当然,(int)(dynamic)o
确实有效,正如预期的那样。
这是为什么?(int)o
有什么办法可以解决这个问题TryConvert
吗?