如何在CSharpScript中使用主机中的自定义类?

时间:2017-10-10 16:50:35

标签: c#

我试图为我的游戏添加运行时脚本,但是在加载外部脚本时出现问题:

CSharpScript.RunAsync(scriptToRun, null, this);

当要运行的脚本使用主机程序中的类时。

示例:

主机程序有一个名为Ship的类 scriptToRun有:

Ship badGuy = new Ship();

并在执行时

CSharpScript.RunAsync(scriptToRun, null, this);

我明白了:

 error CS0246: The type or namespace name 'Ship' could not be found (are you missing a using directive or an assembly reference?)

我假设我需要添加对脚本的引用,但我无法弄明白。

感谢。

1 个答案:

答案 0 :(得分:0)

var result = await CSharpScript.EvaluateAsync("Ship()", ScriptOptions.Default.WithReferences(typeof(Ship).Assembly));

https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples