El compilador portado al fracaso .NET Core para grabar y futuros pensamientos .NET

 

.NET Core está empujando a la nueva plataforma de Microsoft, que parece tener más influencia. Con el fin de estar listo para esta tendencia de la industria, recién salido de sus propios compiladores de lenguaje de programación de .NET trasplante de .NET Core , con el fin de lograr multi-plataforma Linux para funcionar en, pero fracasó.

 

 

 

La razón es que .NET Core biblioteca en el dominio de aplicación , AssemblyBuilder , ModuleBuilder , ILGenerator y así le falta algún núcleo mismo del método o tipo, por lo que es imposible compilar.

 

Sin éstos núcleo no puede ser compilado con éxito, no se puede generar el archivo binario final. Los que se utilizan para estar en el .NET CLR lenguaje de código abierto que se ejecuta en .NET Core para ellos no tiene apelación, la ausencia de un seguimiento de .NET Core , así que no hay manera de obtener ayuda del proyecto de código abierto. Por ejemplo Clojure el CLR , he descargado el último código fuente del compilador, es con la System.Reflection.Emit espacio de nombres para generar IL instrucción.

 

 

Para Microsoft .NET Core abandonado en System.Reflection.Emit ese conjunto de cosas. Traté de investigar el conjunto de generada IL saber estar vacío. Esto me recuerda a Sliverlight , XNA , Windows Phone destino de. He trabajado tan duro para ahondar en esta parte del conocimiento ha sido cero, y me recuerda a la tarjeta de cero ( apodo de Saakashvili ) .

 

Creo que ahora Microsoft es ahora Roslyn compilación de C # , pero Roslyn es de código abierto. He descargado Roslyn fuente, y se analiza. Descubrir el código fuente PEAssemblyBuilder alguna .NET Core método de falta, pero que es el sellado interno de la clase, no está abierto, no está disponible para todo el mundo para su uso.

Microsoft no sólo en el .NET Core destruido en el anterior System.Reflection.Emit , y no proporcionan una nueva características alternativas, parece que excluye a otras personas, a una sola mano acumulación .NET ecología, .NET allá de Java es también la posibilidad de más o menos determinada. Sentirse demasiado poco.

 

Siento que los extranjeros tienen que renunciar en .NET lenguaje de desarrollo en que es sabia. Java plataforma, ha habido Groovy , Scala , Kotlin y así sucesivamente lenguaje aparece en el .NET imposible tener sucesivamente. Microsoft .NET en es única para dominar, que quieren destruir inmediatamente destruir, no como el de Java 's PCJ organización que reúne a voto, no necesita preguntar .NET vistas programadores, de alta eficiencia.

 

 

Un método o faltante tipo es el siguiente:

dominio de aplicación

Falta de método

DefineDynamicAssembly (nombre AssemblyName, acceso AssemblyBuilderAccess);

 

AssemblyBuilder

Falta de método

DefineDynamicModule (nombre de la cadena, cadena de nombre de fichero, bool emitSymbolInfo);

SetEntryPoint (MethodInfo entryMethod, PEFileKinds fileKind);

Guardar (cadena assemblyFileName);

 

ModuleBuilder

Falta de método

DefineDocument (String url, el lenguaje Guid, Guid languageVendor, Guid DocumentType);

 

ILGenerator

Falta de método

MarkSequencePoint (documento ISymbolDocumentWriter, int STARTLINE, int StartColumn, int línea de fondo, int EndColumn);

 

LocalBuilder

Falta de método

SetLocalSymInfo (nombre de la cadena);

 

La falta de un tipo enumerado PEFileKinds

 

AssemblyBuilderAccess

La falta de valores de la enumeración

Salvar,

RunAndSave,

ReflectionOnly

 

 

Supongo que te gusta

Origin www.cnblogs.com/tkt2016/p/12625988.html
Recomendado
Clasificación