¿Hay una manera de utilizar los objetos y funciones (compilados en un ensamblaje) IronPython de código C #?

StackOverflow https://stackoverflow.com/questions/3795914

Pregunta

IronPython.net documentación dice el MSIL en el montaje no es compatible con CLS, pero ¿hay alguna solución?

¿Fue útil?

Solución

Esto fue en parte una motivación para añadir el tipo dynamic a C # 4.0. El mayor problema es que las declaraciones IronPython no incluye información de tipo, lo que hace que sea difícil de usar desde C #. La palabra clave dynamic añade soporte para este tipo de objetos de tipado dinámico a C # 4.0. Véase, por ejemplo:

Llamar a funciones / objetos de C # 3.0 es un poco más molesto, pero es todavía posible . Usted sólo tiene que escribir algo como foo.Invoke("Bar", 42) en lugar de escribir foo.Bar(42).

Otros consejos

Estoy escribiendo esto en mi teléfono así que por favor, perdona los errores tontos. Para utilizar el ensamblado compilado, asegúrese de que compila con clr.CompileModules, NO pyc.py. Luego, en su C # llaman al método LoadAssembly en su objeto Python ScriptEngine. El módulo puede ser importado llamando al método ImportModule en su ScriptEngine. A partir de ahí si se puede aprovechar la dinámica de palabras clave, que lo hagan. De lo contrario, tendremos que aguantar con algunos cadena mágica pesadas llamadas a GetVariable. También tenga en cuenta que tendrá que proporcionar la biblioteca estándar a su Asamblea Python compilado de una forma u otra.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top