Подтвердить что ты не робот

Как проверить, является ли общий параметр динамическим в .NET 4.0

У меня есть класс ObjectMapper<T>. Есть ли способ в .NET 4.0 сказать, что typeof(T) есть dynamic? Я хочу иметь возможность определять внутри метода-члена, был ли класс инициализирован как new ObjectMapper<dynamic>() vs. new ObjectMapper<SomeConcreteClass>().

4b9b3361

Ответ 1

Вы делаете это, проверяя, имеет ли экземпляр тип IDynamicMetaObjectProvider, или вы можете проверить, реализует ли тип IDynamicMetaObjectProvider.

Ответ 2

Нет типа CLR, называемого dynamic. Компилятор С# делает все динамические значения типа object, а затем вызывает код пользовательского привязки, чтобы выяснить, как с ними справиться. Если был использован dynamic, он будет отображаться как object.