我正在使用CS脚本库来执行动态代码.我不想将它用作脚本引擎,而是想用它来动态地将功能插入到应用程序中.这是托管代码......
using System;
using CSScriptLibrary;
using System.Reflection;
using System.IO;
namespace CSScriptTester
{
class Program
{
static void Main(string[] args)
{
// http://www.csscript.net/
Console.WriteLine("Running Script.");
CSScript.Evaluator.ReferenceAssembly(Assembly.GetAssembly(typeof(System.Windows.Forms.MessageBox)));
string code = File.ReadAllText("SomeCode/MyScript.cs");
dynamic block = CSScript.Evaluator.LoadCode(code);
block.ExecuteAFunction();
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是SomeCode/MyScript.cs的内容......
using System;
using System.Windows.Forms;
namespace CSScriptTester.SomeCode
{
class MyScript
{
public void ExecuteAFunction()
{
MessageBox.Show("Hello, world!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用.在托管代码中,我不希望托管代码负责指定程序集引用.所以我评论CSScript.Evaluator.ReferenceAssembly(Assembly.GetAssembly(typeof(System.Windows.Forms.MessageBox)));并运行它,我得到错误...
错误CS0234:类型或命名空间名称
Forms' does not exist in the namespaceSystem.Windows'.你错过了装配参考吗?
我知道如果我使用命令行工具执行此操作,我可以将其添加到脚本顶部以添加引用...
//css_reference System.Windows.Forms.dll …Run Code Online (Sandbox Code Playgroud) 我是编程 cs 脚本(csx 文件)的新手。
但我的问题是我没有任何智能感知。如何在 Visual Studio 2015 中获得智能感知支持?