如何在Windows Mobile(.NET CF)上将程序集加载到不同的AppDomain中,以便后续的AppDomain卸载?
答案 0 :(得分:1)
AppDomain.Load 在CF.NET中不可用,但您可以尝试执行程序集。请记住,该程序集需要具有 Main 方法。
AppDomain newDomain = AppDomain.CreateDomain("newDomain");
newDomain.ExecuteAssembly("Application.exe");
答案 1 :(得分:0)
尝试这样的事情:
class ServiceApplicationProxy : MarshalByRefObject
{
public void Configure()
{
Assembly serviceAssembly = Assembly.Load(new AssemblyName()
{
CodeBase = @"c:\fullpath\assembly.dll")
});
// do something
}
}
class Class1
{
public void Start()
{
Type activator = typeof(ServiceApplicationProxy);
AppDomain domain = AppDomain.CreateDomain(
"friendlyName", null, new AppDomainSetup());
ServiceApplicationProxy proxy =
domain.CreateInstanceAndUnwrap(
Assembly.GetAssembly(activator).FullName,
activator.ToString()) as ServiceApplicationProxy;
Console.WriteLine("Press ENTER to exit");
Console.ReadLine();
AppDomain.Unload(domain);
}
}
编辑:来自http://msdn.microsoft.com/en-us/library/system.appdomain(VS.71).aspx的文档:
.NET Compact Framework平台注意:.NET Compact Framework不支持将程序集加载到域中性代码区域以供多个应用程序域使用。