Ao construir um projeto que estou convertendo para CoreCLR, encontrei este erro:
C: \ Users \ Benjamin \ Projects \ MiniProfiler \ StackExchange.Profiling \ SqlTiming.cs (136,25): erro CS1061: 'Tipo' não contém uma definição para 'IsEnum' e nenhum método de extensão 'IsEnum' aceitando um primeiro argumento do tipo 'Type' pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?)
O que é estranho para mim sobre isso é que tudo que posso encontrar online indica que Type
deve estar disponível, e a propriedade IsEnum
deve estar disponível . A busca reversa de pacotes de Fowler encontra Type
no pacote System.Runtime
, e eu tenho System.Runtime 4.0.20-*
como uma dependência na minha project.json
na estrutura dnxcore50
seção.
No entanto, o erro do compilador acontece, e dotPeek também diz que não há nenhum tipo Type
no pacote System.Runtime
. O que eu perdi?
@aggieben , você provavelmente deseja .GetTypeInfo (). IsEnum (GetTypeInfo é um método de extensão do namespace System.Reflection). Um monte de área de superfície de Type foi movido para TypeInfo, incluindo IsEnum, eu acredito. Com relação ao dotPeek, não tentei, mas se tivesse que adivinhar, ele não está prestando atenção ao atributo [assembly: TypeForwardedTo (typeof (Type))] em System.Runtime.dll, que está encaminhando para a implementação mscorlib.
Obrigado!
Observe que, a partir de 04/08/2015, o MSDN lista IsEnum em Type for .Net 4.5 / 4.6
https://msdn.microsoft.com/en-us/library/System.Type_properties (v = vs.110) .aspx
Obrigado @stephentoub , isso ajudou!
Comentários muito úteis
@aggieben , você provavelmente deseja .GetTypeInfo (). IsEnum (GetTypeInfo é um método de extensão do namespace System.Reflection). Um monte de área de superfície de Type foi movido para TypeInfo, incluindo IsEnum, eu acredito. Com relação ao dotPeek, não tentei, mas se tivesse que adivinhar, ele não está prestando atenção ao atributo [assembly: TypeForwardedTo (typeof (Type))] em System.Runtime.dll, que está encaminhando para a implementação mscorlib.