スクリプトを実行する
スクリプトのコードを実行する
IApplication
オブジェクトのExecuteScriptCode
メソッドを用いて、C#言語のスクリプトを実行できます。
public void ExecuteScriptCode(ICommandContext c, ICommandParams p)
{
var script = @"
var currentProject = CurrentProject;
if ( currentProject == null ) return;
App.Output.WriteLine(""sample"",currentProject.Name);";
// スクリプトを実行します
c.App.ExecuteScriptCode(script,"cs");
}
スクリプトの戻り値は、スクリプトのreturn文の結果オブジェクトを返します。スクリプトにreturn文がない場合は null を返します。
public void ExecuteScriptCode(ICommandContext c, ICommandParams p)
{
var script = @"return CurrentProject.?Name";
// スクリプトを実行します
var result = c.App.ExecuteScriptCode(script, "cs");
if (result == null) result = "(null)";
c.App.Output.WriteLine("sample", result.ToString());
}
スクリプトファイルを実行する
IApplication
オブジェクトのExecuteScript
メソッドで指定されたスクリプトファイルを読み込んで実行します。
public void ExecuteScript(ICommandContext c, ICommandParams p)
{
// スクリプトファイルの絶対パスです
var scriptFilePath = "c:/data/myscript.cs";
// スクリプトを実行します
c.App.ExecuteScript(scriptFilePath);
}
スクリプトにパラメータを渡す
スクリプトにはパラメータを渡すことができます。
public void ExecuteScript(ICommandContext c, ICommandParams p)
{
IScriptParams scriptParams = c.App.CreateScriptParams();
scriptParams.AddParamWithName("modelName", "ABC");
scriptParams.AddParamWithName("close", true);
// スクリプトを実行します
c.App.ExecuteScript("c:/data/myscript.cs", scriptParams);
}
スクリプト側では次のようにParams
オブジェクトでパラメータを処理できます。
var modelName = Params["modelName"];
var close = (bool)Params["close"];
//...