0
私は単純なIScript
インターフェイスを持っています。私はすべてのスクリプトがそれを実装するように強制したい。強制スクリプトインターフェイスを使用したRoslynスクリプト
public interface IScript<T>
{
T Execute(object[] args);
}
私はこれをachiveするRoslyn scripting APIを使用したいです。このようなものはCSScriptで可能です(インターフェイスアライメントを参照)。
var code = @"
using System;
using My.Namespace.With.IScript;
public class Script : IScript<string>
{
public string Execute()
{
return ""Hello from script!"";
}
}
";
var script = CSharpScript.Create(code, ScriptOptions.Default); // + Load all assemblies and references
script.WithInterface(typeof(IScript<string>)); // I need something like this, to enforce interface
script.Compile();
string result = script.Execute(); // and then execute script
Console.WriteLine(result); // print "Hello from script!"
おかげで行を変更します、答えます –