是否可能知道System.Object是否实际指定为动态(C#)?

是否可能知道System.Object是否实际指定为动态(C#)?,c#,.net,dynamic-language-runtime,C#,.net,Dynamic Language Runtime,我有几个场景可以说明这一点,但我会专门写一个更容易演示的场景 我有一个工厂界面: interface IFactory { Create<T>(); } 接口IFactory { 创建(); } 以及一段使用它的代码: public static void func(IFactory f) { var o = f.Create<dynamic>(); } 公共静态无效函数(IFactory f) { var o=f.Create(); } 现在,在Crea

我有几个场景可以说明这一点,但我会专门写一个更容易演示的场景

我有一个工厂界面:

interface IFactory
{
  Create<T>();
}
接口IFactory
{
创建();
}
以及一段使用它的代码:

public static void func(IFactory f)
{
  var o = f.Create<dynamic>();
}
公共静态无效函数(IFactory f)
{
var o=f.Create();
}
现在,在
Create()
的一个实现中,有没有办法通过对
T
的反射来确定调用者是否打算对其对象进行动态调度,而不是直接的
对象
?我有一门课,能够做出这样的区分是非常有用的


我已经查看了一下,看看是否可以在类型或类似的内容上找到属性,但没有乐趣。

dynamic
仅在调用方的眼中,因此没有;那是不可能的。就
Create
而言,它只是
object

是的,当然不同的语言最终绑定的方式不同,但我希望,如果您可以在IDynamicMetaObjectProvider中绑定动态表达式时“后退一步”,至少c#可以在动态表达式的一开始就提供一种方法。该死