C# 限制MS脚本引擎中名称空间的使用
NET Framework具有强大的功能,支持在运行时编译代码并运行代码,以实现某些类型的脚本功能。CodeProject上已经有一些脚本引擎可用,Microsoft也有自己的库 我正在开发一个web自动化软件,我想在应用程序中包括Microsoft脚本引擎 问题是脚本引擎允许在引用的程序集中使用所有名称空间,我想将使用限制为选定的几个名称空间C# 限制MS脚本引擎中名称空间的使用,c#,.net,windows,scripting,scriptengine,C#,.net,Windows,Scripting,Scriptengine,NET Framework具有强大的功能,支持在运行时编译代码并运行代码,以实现某些类型的脚本功能。CodeProject上已经有一些脚本引擎可用,Microsoft也有自己的库 我正在开发一个web自动化软件,我想在应用程序中包括Microsoft脚本引擎 问题是脚本引擎允许在引用的程序集中使用所有名称空间,我想将使用限制为选定的几个名称空间 using System; // allowed. using System.Linq; // allowed. using System.Reflec
using System; // allowed.
using System.Linq; // allowed.
using System.Reflection; // restrict.
如何在脚本中限制名称空间的使用。按名称限制名称空间没有多大用处,因为扩展只可以在自己的程序集中包含您不喜欢的类的副本,而只是重命名了
听起来你真正想要的是一个安全边界。将扩展放在不受信任的AppDomain中。您可以访问将要编译的代码吗?(我指的是代表代码的字符串)那么,您计划使用哪个引擎?解决方案可能取决于此。是否要限制名称空间或dll(如System.dll)的使用?如果“禁止”名称空间与“允许”名称空间位于同一DLL中,则第一个名称空间几乎无法实现。。。或者你想把它作为某种安全措施(沙箱…)来做?