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

发布于 2024-08-17 18:20:19 字数 76 浏览 4 评论 0原文

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

How to load an assembly into different AppDomain on Windows Mobile (.NET CF) for subsequent AppDomain unload ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不甘平庸 2024-08-24 18:20:19

AppDomain.Load 在 CF.NET 中不可用,但您可以尝试执行程序集。请记住,该程序集需要有一个 Main 方法。

AppDomain newDomain = AppDomain.CreateDomain("newDomain");      
newDomain.ExecuteAssembly("Application.exe");

AppDomain.Load is not available in CF.NET, but you can try executing an assembly. Keep in mind, that assembly needs to have a Main method.

AppDomain newDomain = AppDomain.CreateDomain("newDomain");      
newDomain.ExecuteAssembly("Application.exe");
杯别 2024-08-24 18:20:19

尝试这样的操作:

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

Try something like this:

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);
    }
}

EDIT: From documentation at http://msdn.microsoft.com/en-us/library/system.appdomain(VS.71).aspx:

.NET Compact Framework Platform Note: The .NET Compact Framework does not support loading assemblies into a domain neutral code area for use by multiple application domains.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文