如何在Windows Mobile(.NET CF)上将程序集加载到不同的AppDomain?

时间:2010-01-15 02:13:26

标签: windows-mobile appdomain

如何在Windows Mobile(.NET CF)上将程序集加载到不同的AppDomain中,以便后续的AppDomain卸载?

2 个答案:

答案 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不支持将程序集加载到域中性代码区域以供多个应用程序域使用。