При создании проекта, который я конвертирую в CoreCLR, я столкнулся с этой ошибкой:
C: \ Users \ Benjamin \ Projects \ MiniProfiler \ StackExchange.Profiling \ SqlTiming.cs (136,25): ошибка CS1061: «Тип» не содержит определение для «IsEnum» и метод расширения «IsEnum», принимающий первый аргумент типа 'Type' (вам не хватает директивы using или ссылки на сборку?)
Что для меня странно в этом, так это то, что все, что я могу найти в Интернете, указывает на то, что Type
должно быть доступно, и свойство IsEnum
должно быть доступно . Обратный поиск пакетов Фаулера находит Type
в пакете System.Runtime
, и у меня есть System.Runtime 4.0.20-*
в качестве зависимости в моем project.json
в структуре dnxcore50
раздел.
Однако возникает ошибка компилятора, и dotPeek также сообщает, что в пакете Type
типа System.Runtime
. Что я пропустил?
@aggieben , вы, вероятно, захотите .GetTypeInfo (). IsEnum (GetTypeInfo - это метод расширения из пространства имен System.Reflection). В TypeInfo была перенесена куча поверхностных областей Type, включая IsEnum, как мне кажется. Что касается dotPeek, я его не пробовал, но если догадаться, он не обращает внимания на атрибут [assembly: TypeForwardedTo (typeof (Type))] в System.Runtime.dll, который перенаправляет реализацию mscorlib.
Спасибо!
Обратите внимание, что с 2015-8-4 MSDN перечисляет IsEnum в разделе Тип для .Net 4.5 / 4.6.
https://msdn.microsoft.com/en-us/library/System.Type_properties (v = vs.110) .aspx
Спасибо @stephentoub , это помогло!
Самый полезный комментарий
@aggieben , вы, вероятно, захотите .GetTypeInfo (). IsEnum (GetTypeInfo - это метод расширения из пространства имен System.Reflection). В TypeInfo была перенесена куча поверхностных областей Type, включая IsEnum, как мне кажется. Что касается dotPeek, я его не пробовал, но если догадаться, он не обращает внимания на атрибут [assembly: TypeForwardedTo (typeof (Type))] в System.Runtime.dll, который перенаправляет реализацию mscorlib.