我已经加载了一个特定的AppDomain,我想从它动态地加载一些类型(小菜一碟吧?)。问题在于AppDomain类的所有CreateInstance方法都将其作为远程对象句柄返回。远程代理有一些限制,我想避免这种情况,例如:必须拥有可序列化的具体类以及通过紧急垃圾回收,除非使用LifeTimeService。.net - 从AppDomain动态加载类型而无需远程代理
我的问题是我怎么能加载一个类型在另一个应用程序域中,而没有它包裹在远程代理?以下是我的代码片段。
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中创建对象? – 2010-07-27 23:07:26
我正在构建一个Windows服务,我希望_bllQueue被托管在与主服务内存空间分离的内存空间中。 – James 2010-07-27 23:10:39