我有几个方案可以解决这个问题,但我会特别写一个更易于演示的方案
我有一个工厂界面:
interface IFactory
{
Create<T>();
}
使用它的一段代码:
public static void func(IFactory f)
{
var o = f.Create<dynamic>();
}
现在,在Create<T>()
的实现中,是否有任何方法,通过对T
的反思,来确定调用者是否打算在其对象上进行动态调度,而不是直接{{1} }}?我有一个能够使这种区别非常有用的课程......
我已经看过我是否可以找到类型或类似的属性,但没有快乐。
答案 0 :(得分:2)
dynamic
仅限于来电者 ,因此没有;这是不可能的AFAIK。就Create
而言,它只是object
。