向ScriptCS添加default using指令

时间:2013-09-19 21:38:41

标签: c# roslyn scriptcs

有没有办法可以在ScriptCS中添加默认的using指令?因此,当我启动ScriptCS时,我不需要在该命名空间中包含类的命名空间。

例如,我可能需要与System.Diagnostics命名空间中的Process class进行大量交互。如果我想创建这个类的新实例,我需要做

var proc = new System.Diagnostics.Process();

我宁愿做

var proc = new Process();

我知道每次启动ScriptCS时都可以添加using语句,但我希望它始终存在。

3 个答案:

答案 0 :(得分:3)

您可以在en中添加其他程序集引用和使用语句,并编写Script Pack。您可以在Web API example中看到使用语句注入的示例。

答案 1 :(得分:2)

脚本包可以像Justin提到的那样执行此操作。另一种选择是使用全局模块,例如这里(https://github.com/scriptcs-contrib/scriptcs-sample-module),但是目前他们不能很好地支持这个。如果模块有一个钩子,用于在创建后获取所有服务,则可以执行此操作。

我提交了这个错误(https://github.com/scriptcs/scriptcs/issues/472),以便以更清洁的方式解决这个问题。

答案 2 :(得分:0)

看起来这可以通过修改ScriptExecutor class的DefaultNamespaces属性来包含你想要的名称空间来实现。

您需要下载the source(或在github中分叉一个新分支),自行修改和编译。然后,您将新的ScriptCs.Core程序集放在安装文件夹(C:\ Users \ USER_NAME \ AppData \ Roaming \ scriptcs)中。这将取代现有的组件。如果您这样做,如果您通过chocolatey

进行更新,则会丢失所有更改