.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