限制在MS脚本引擎中使用名称空间

问题描述:

.NET Framework具有很强的功能,可支持在运行时编译代码并运行它,以实现某些类型的脚本功能。 CodeProject上已经有一些脚本引擎可用,而且Microsoft也有自己的库。限制在MS脚本引擎中使用名称空间

我正在开发一个web自动化软件,我想在应用程序中包含Microsoft脚本引擎。

问题是脚本引擎允许在引用的程序集中使用所有命名空间,并且我想将使用限制在选定的几个命名空间中。

using System; // allowed. 
using System.Linq; // allowed. 
using System.Reflection; // restrict. 

如何在脚本中限制名称空间的使用。

+0

你能访问要编译的代码吗? (我的意思是表示代码的字符串) –

+1

那么,你打算使用哪个引擎?解决方案可能取决于此。 – svick

+1

是否要限制命名空间或DLL(如System.dll)的使用?如果“禁止的”命名空间与“允许的”命名空间在同一个DLL中,则第一个几乎无法实现...或者您是否试图将其作为某种安全措施(沙箱...)来执行此操作? – Yahia

通过名称来限制名称空间并不成功,因为扩展名可以包含您不喜欢的类的副本,但只是将其重命名。

这听起来像你真正想要的是安全边界。将该扩展插入不受信任的AppDomain中。