2014-01-10 12 views
0

我在我的应用程序中创建了一个AppDomain。下面是我的代码已经使用AppDomain.ActivationContext为NULL

AppDomainSetup domaininfo = new AppDomainSetup(); 
domaininfo.ApplicationBase = "C:\\"; 
AppDomain domain = AppDomain.CreateDomain("MyDomain", null, domaininfo); 
ActivationContext context = domain.ActivationContext; 

ActivationContext在上面的代码片段null。谁可以帮我这个事。提前致谢。

回答

0

ActivationContext是包含与此ActivationContext关联的应用程序的ClickOnce部署清单的字节数组。它用于获取当前应用程序的ClickOnce部署清单。

如果ClickOnce应用程序在当前AppDomain中运行,请检查AppDomain.CurrentDomain.ActivationContext属性。如果该值非空,则该域正在运行ClickOnce应用程序。

这可以通过检查项目属性“安全”“启用的ClickOnce安全设置”选项卡

在正确的上下文的ClickOnce安全设置检查被禁用。因为它不是单击一次部署。所以上下文也将默认为空

1

如果您未指定ActivationContext,则默认为空。

如果您想要ActivationContext,请使用AppDomainSetup构造函数,该构造函数采用ActivationContext参数。

或者构造函数需要ActivationArguments,而这个构造函数又有一个ActivationContext

+0

你能帮我关于如何在AppDomainSetup()构造函数中指定ActivationContext ?.我试图创建一个ActivationContext的实例并将其传递给AppDomainSetup构造函数。但失败:( –

+0

你想达到什么?你看过http://msdn.microsoft.com/en-us/library/aa376620(v=vs.85).aspx – Joe

+0

你已经将一个AppDomainSetup传递给AppDomain构造函数你需要传递一个ActivationContext到AppDomainSetup的构造函数,我只是改写了我在回答中已经说过的内容,是不是很清楚? – Joe