csharp 小类调用IronPython并使用它的参数执行传入的方法名称。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 小类调用IronPython并使用它的参数执行传入的方法名称。相关的知识,希望对你有一定的参考价值。

namespace PythonEnine
{
    using IronPython.Hosting;
    using Microsoft.Scripting.Hosting;

    /// <summary>
    /// Creates the Python engine and invokes methods
    /// </summary>
    public class PythonEngine
    {
        private ScriptSource scriptSource;
        private CompiledCode compiledCode;
        private ScriptScope scope;
        private ScriptEngine engine;

        public PythonEngine(string scriptPath)
        {
            this.Script = scriptPath;
        }

        public string Script { get; set; }

        public dynamic InvokeMethodWithParameters(string methodName, params object[] parameters)
        {
            engine = Python.CreateEngine();
            scriptSource = engine.CreateScriptSourceFromFile(this.Script);
            compiledCode = scriptSource.Compile();
            scope = engine.CreateScope();

            compiledCode.Execute(scope);

            dynamic pythonMethod = scope.GetVariable(methodName);

            return engine.Operations.Invoke(pythonMethod, parameters);
        }
    }
}

以上是关于csharp 小类调用IronPython并使用它的参数执行传入的方法名称。的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中嵌入 IronPython 时出现问题(缺少编译器所需的成员 'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'

IronPython 将python源码编译成dll,用python调用报错ImportError: dynamic module does not define...

在C#环境中动态调用IronPython脚本(一)

循环 Python / IronPython 对象方法

csharp 调用commant类实例并执行它。

C#调用Python