Al crear un proyecto que estoy convirtiendo a CoreCLR, encontré este error:
C: \ Users \ Benjamin \ Projects \ MiniProfiler \ StackExchange.Profiling \ SqlTiming.cs (136,25): error CS1061: 'Type' no contiene una definición para 'IsEnum' y ningún método de extensión 'IsEnum' acepta un primer argumento del tipo 'Tipo' se pudo encontrar (¿le falta una directiva using o una referencia de ensamblado?)
Lo que me extraña de esto es que todo lo que puedo encontrar en línea indica que Type
debería estar disponible, y la propiedad IsEnum
debería estar disponible . La búsqueda inversa de paquetes de Fowler encuentra Type
en el paquete System.Runtime
, y tengo System.Runtime 4.0.20-*
como dependencia en mi project.json
en el marco dnxcore50
sección.
Sin embargo, ocurre el error del compilador y dotPeek también dice que no hay ningún tipo Type
en el paquete System.Runtime
. ¿Qué me he perdido?
@aggieben , probablemente quieras .GetTypeInfo (). IsEnum (GetTypeInfo es un método de extensión del espacio de nombres System.Reflection). Una gran parte del área de superficie de Type se movió a TypeInfo, incluido IsEnum, creo. Con respecto a dotPeek, no lo he probado, pero si tuviera que adivinar, no está prestando atención al atributo [assembly: TypeForderedTo (typeof (Type))] en System.Runtime.dll, que se reenvía a la implementación de mscorlib.
¡Gracias!
Tenga en cuenta que a partir de 2015-8-4 MSDN enumera IsEnum en Type para .Net 4.5 / 4.6
https://msdn.microsoft.com/en-us/library/System.Type_properties (v = frente a 110) .aspx
Gracias @stephentoub , ¡eso ayudó!
Comentario más útil
@aggieben , probablemente quieras .GetTypeInfo (). IsEnum (GetTypeInfo es un método de extensión del espacio de nombres System.Reflection). Una gran parte del área de superficie de Type se movió a TypeInfo, incluido IsEnum, creo. Con respecto a dotPeek, no lo he probado, pero si tuviera que adivinar, no está prestando atención al atributo [assembly: TypeForderedTo (typeof (Type))] en System.Runtime.dll, que se reenvía a la implementación de mscorlib.