安全策略: 在创建 AppDomain 时,可以通过 AppDomainSetup 和 Evidence 类来配置安全策略和权限。 使用 AppDomainSetup 类: AppDomainSetup 类提供了一组属性,用于配置新的 AppDomain。例如,应用程序基础目录、配置文件路径、影子复制设置等。 AppDomainSetup 类的主要属性 ApplicationBase:指定应用程序域的基础目录。 ConfigurationFile:指定应用程序域的配置文件。 示例代码 以下是一个示例,展示了如何使用 AppDomainSetup 类来单独配置一个新的 AppDomain,并加载和执行代码。 可以通过 AppDomainSetup 类来配置新的 AppDomain。 加载和执行代码: 在新的 AppDomain 中加载程序集和执行代码。
FriendlyName; string exeAssembly = Assembly.GetEntryAssembly().FullName; // 设置一个新的应用程序域 AppDomainSetup a= new AppDomainSetup(); a.ApplicationBase = System.Environment.CurrentDirectory MarshalByRefObject { //通过代理调用方法 public void SomeMethod(string callingDomainName) { AppDomainSetup
那就让我们来看一下如何创建和卸载AppDomain吧 创建: AppDomainSetup objSetup = new AppDomainSetup(); objSetup.ApplicationBase ("RemoteAppDomain", null, objSetup); 创建AppDomain的逻辑非常简单:使用 AppDomain.CreateDomain 静态方法、传递了一个任意字符串 和 AppDomainSetup 打开 影像复制程序集 功能,需要在创建新的AppDomain时做两步简单的设定即可: AppDomainSetup objSetup = new AppDomainSetup(); objSetup.ApplicationBase
AppDomainSetup这个类存储着探索目录的信息,其成员包括: ApplicationBase 、 PrivateBinPath 。 (@"{0}.dll",path); 35 return Assembly.LoadFrom(path); 36 } 37 } 38 } 方法三:设置 AppDomainSetup AppDomain.CurrentDomain.FriendlyName; 33 var currentAssembly = Assembly.GetExecutingAssembly(); 34 35 AppDomainSetup setup = new AppDomainSetup(); 36 setup.ApplicationBase = Environment.CurrentDirectory
this.BodyText.Text.Trim(); funcMessage.Foot = this.FootText.Text.Trim(); AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationName = "ModelLoad"; setup.ApplicationBase
name) { if (name == null) throw new ArgumentNullException("name"); switch (AppDomainSetup.Locate (name)) { case -1: if (name.Equals(AppDomainSetup.LoaderOptimizationKey)) AppDomainSetup类为一个封闭类,表示可以添加到System.AppDomain的实例的程序集绑定信息。 ControlAppDomain = true)] public static AppDomain CreateDomain(string friendlyName, Evidence securityInfo, AppDomainSetup
remoteLoader; private DirectoryInfo MainFolder; public LocalLoader() { AppDomainSetup get { return remoteLoader.FullName; } } } 这里需要说明的,AppDomainSetup
Boo.Lang.Builtins: string shellm(string, String[]) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup Castle.Facilities.DynamicLoader.DynamicLoaderFacility: AppDomain CreateAppDomain(IConfiguration) void AppDomainSetup.set_DisallowApplicationBaseProbing Castle.Facilities.DynamicLoader.DynamicLoaderFacility: AppDomain CreateAppDomain(IConfiguration) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup Castle.Facilities.DynamicLoader.DynamicLoaderFacility: AppDomain CreateAppDomain(IConfiguration) void AppDomainSetup.set_DisallowApplicationBaseProbing Castle.Facilities.DynamicLoader.DynamicLoaderFacility: AppDomain CreateAppDomain(IConfiguration) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup
private AppDomain _domain = AppDomain.CreateDomain( "CurrentDomainSandbox", null, new AppDomainSetup
AppDomainSetup 3.2.3.2. 新版本应该增加后缀,而不是前缀,便于按名字排序时发现 ? AppDomain ? AppDomainSetup 3.2.3.3. 考虑使用全新但有意义的名字,而不是增加后缀 ? Date ? Calendar 3.2.3.4.
mscorlib]][] 6249fbec 1 64 System.IO.StreamReader 624ab4e4 1 68 System.AppDomainSetup
mscorlib]][] 6249fbec 1 64 System.IO.StreamReader 624ab4e4 1 68 System.AppDomainSetup
</assemblyBinding> </runtime> 当然,我们还可以在代码中通过AppDomain类中的几个成员来改变搜索规则,如AssemblyResolve事件、AppDomainSetup public AppDomainManager DomainManager { get; } 返回域的配置信息,如在config中配置的节点信息 public AppDomainSetup
当然,我们还可以在代码中通过AppDomain类中的几个成员来改变搜索规则,如AssemblyResolve事件、AppDomainSetup类等。