У меня есть класс ObjectMapper<T>. Есть ли способ в .NET 4.0 сказать, что typeof(T) есть dynamic? Я хочу иметь возможность определять внутри метода-члена, был ли класс инициализирован как new ObjectMapper<dynamic>() vs. new ObjectMapper<SomeConcreteClass>().
Как проверить, является ли общий параметр динамическим в .NET 4.0
Ответ 1
Вы делаете это, проверяя, имеет ли экземпляр тип IDynamicMetaObjectProvider, или вы можете проверить, реализует ли тип IDynamicMetaObjectProvider.
Ответ 2
Нет типа CLR, называемого dynamic. Компилятор С# делает все динамические значения типа object, а затем вызывает код пользовательского привязки, чтобы выяснить, как с ними справиться. Если был использован dynamic, он будет отображаться как object.