本文整理汇总了C#中ProtoScript.Runners.ProtoScriptRunner.LoadAndExecute方法的典型用法代码示例。如果您正苦于以下问题:C# ProtoScript.Runners.ProtoScriptRunner.LoadAndExecute方法的具体用法?C# ProtoScript.Runners.ProtoScriptRunner.LoadAndExecute怎么用?C# ProtoScript.Runners.ProtoScriptRunner.LoadAndExecute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProtoScript.Runners.ProtoScriptRunner
的用法示例。
在下文中一共展示了ProtoScript.Runners.ProtoScriptRunner.LoadAndExecute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunScript
public bool RunScript(string dsPath)
{
if (string.IsNullOrEmpty(GeometryFactoryName))
throw new Exception("GeometryFactory not set!");
if (string.IsNullOrEmpty(PersistenceManagerName))
throw new Exception("PersistenceManager not set!");
if (!File.Exists(dsPath))
throw new FileNotFoundException(dsPath + " Does not exist");
bool success = false;
System.IO.StringWriter stringStream = new StringWriter();
executionLog = new StringBuilder();
ProtoCore.Core core = null;
ProtoCore.RuntimeCore runtimeCore = null;
try
{
var options = new ProtoCore.Options();
string assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location;
string incDir = Path.GetDirectoryName(assemblyLocation);
options.IncludeDirectories.Add(incDir);
core = new ProtoCore.Core(options);
core.BuildStatus.SetStream(stringStream);
core.Options.RootModulePathName = ProtoCore.Utils.FileUtils.GetFullPathName(dsPath);
core.Compilers.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.kImperative, new ProtoImperative.Compiler(core));
core.Configurations.Add(Autodesk.DesignScript.Interfaces.ConfigurationKeys.GeometryFactory, GeometryFactoryName);
core.Configurations.Add(Autodesk.DesignScript.Interfaces.ConfigurationKeys.PersistentManager, PersistenceManagerName);
ProtoScript.Runners.ProtoScriptRunner fsr = new ProtoScript.Runners.ProtoScriptRunner();
ExecutionMirror mirror = fsr.LoadAndExecute(dsPath, core, out runtimeCore);
executionLog.AppendLine("Script executed successfully.");
executionLog.AppendLine();
executionLog.AppendLine("=================================CoreDump=================================");
string coreDump = null;
try
{
coreDump = mirror.GetCoreDump();
executionLog.AppendLine();
executionLog.AppendLine(coreDump);
success = true;
}
catch (System.Exception ex)
{
executionLog.AppendLine(ex.Message);
executionLog.AppendLine(ex.StackTrace);
success = false;
}
finally
{
executionLog.AppendLine("=================================CoreDump=================================");
}
}
catch (System.Exception ex)
{
success = false;
executionLog.AppendLine("Fail to execute script.");
executionLog.AppendLine("Exceptions:");
executionLog.AppendLine(ex.Message);
executionLog.AppendLine("StackTrace:");
executionLog.AppendLine(ex.StackTrace);
}
finally
{
if (core != null)
{
core.BuildStatus.SetStream(null);
runtimeCore.Cleanup();
}
}
return success;
}