Zmieszany z tytułem? Pozwól mi wyjaśnić: zrobić wykonać skrypt Pythona, w ramach procesu .NET (mój aplikacji C# jako gospodarz), przy użyciu IronPython:Jak uzyskać linię naruszającą prawa podczas używania IronPython z C#/.NET jako hostem, na błąd runtime?
ScriptEngine python = Python.CreateEngine();
ScriptSource pyFromFileSource = python.CreateScriptSourceFromString(script);
CompiledCode pyFromFileCode = pyFromFileSource.Compile();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope(); //get a scope where we put in the stuff from the host
scope.SetVariable("lab", this); //allow usage of this class in the script
script.Execute(scope);
kod pokazany powyżej jest uruchomiony w wątku tła (przy użyciu Task
klasa). Skrypt zawiera błąd, który powoduje bańkę. Mogę to złapać i dostać wiadomość.
Ale jak uzyskać wiersz skryptu lub numer linii, który powoduje wyjątek?
Dzięki za tym rozwiązaniem. Działa bardzo dobrze! – Marcel
Działa świetnie, dzięki. Dla każdego, kto tego szuka, 'PythonOps' jest w' IronPython.Runtime.Operations'. –