Как загрузить сборку в другой домен приложений на Windows Mobile (.NET CF)? - PullRequest
3 голосов
/ 15 января 2010

Как загрузить сборку в другой домен приложения в Windows Mobile (.NET CF) для последующей выгрузки домена приложения?

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

AppDomain.Load недоступен в CF.NET, но вы можете попробовать выполнить сборку. Имейте в виду, что сборка должна иметь метод Main .

AppDomain newDomain = AppDomain.CreateDomain("newDomain");      
newDomain.ExecuteAssembly("Application.exe");
0 голосов
/ 15 января 2010

Попробуйте что-то вроде этого:

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 не поддерживает загрузку сборок в нейтральную область кода для использования несколькими доменами приложений.

...