【发布时间】:2010-07-27 22:56:51
【问题描述】:
我已经加载了一个特定的 AppDomain,我想从中动态加载一些类型(小菜一碟,对吧?)。事情是 AppDomain 类的所有 CreateInstance 方法都将事情作为远程对象句柄返回。远程代理有一些我想避免的限制,例如:必须有可序列化的具体类,以及过度急切的垃圾收集,除非使用 LifeTimeService。
我的问题是如何在另一个应用程序域中加载类型而不将其包装在远程代理中?下面是我的代码的 sn-p。
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = Path.GetDirectoryName(_bllAssemblyPath);
ads.PrivateBinPath = Path.GetDirectoryName(_bllAssemblyPath);
if (File.Exists(_bllAssemblyPath + ".config"))
ads.ConfigurationFile = _bllAssemblyPath + ".config";
_workerSpace= AppDomain.CreateDomain("worker", new System.Security.Policy.Evidence(AppDomain.CurrentDomain.Evidence), ads );
_bllQueue = _workerSpace.CreateInstanceFrom(_bllAssemblyPath, queueType) as IThumbCapQueue;
【问题讨论】:
-
我认为你做不到。您想要做什么需要您在单独的 AppDomain 中创建对象?
-
我正在构建一个 Windows 服务,我希望将 _bllQueue 托管在与主服务内存空间不同的内存空间中。
标签: .net remoting appdomain dynamic-loading