Construye scripts de Python y llama a métodos desde C #

¿Hay alguna manera de hacer que este escenario funcione?

Hay un script en Python. Está integrado en una DLL ejecutando este script con IronPython:

import clr
clr.CompileModules("CompiledScript.dll", "script.py")

El objetivo es llamar a los métodos de este DLL desde el código C #.Reflector .NET muestra que hay una clase en la DLL -DLRCashedCode y los métodos que nos interesan son los métodos estáticos privados de esta clase.

Por ejemplo, hay una función en el script:

def scriptMethod(self, text):
...

Su representación en la DLL es:

private static object scriptMethod(Closure closure1, PythonFunction $function, object self, object text)
{
...
}

Closure yPythonFunction son clases de IronPython (de Microsoft.Scripting.dll y IronPython.dll).

Hasta ahora tan bueno. ¿Es posible que este método sea llamado por código C #? La idea de utilizar la reflexión como

Type t = typeof(DLRCachedCode);

string methodName = "scriptMethod";
MethodInfo method = t.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Static);

object[] parameters = new object[] { "param1", "param2" };  // the "params problem"
method.Invoke(null, parameters);

Parece más difícil debido a la configuración de los parámetros del método. Si se inicializan correctamente (¿cómo?), ¿Podemos esperar que el método funcione sin problemas?

¿Hay una mejor manera de llamar a estos métodos desde C #? Por varias razones diferentes, preferimos que el script se compile como un ensamblado .NET y no se llame al script en sí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta