У меня есть класс 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
.