AppDomain.ActivationContext is NULL

2019-09-11 14:05发布

问题:

I have created an AppDomain in my application. Below is the code I have used

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

But the ActivationContext is null in above snippet. Can anyone help me on this. Thanks in Advance.

回答1:

It's null by default if you don't specify an ActivationContext.

If you want an ActivationContext, use the AppDomainSetup constructor that takes an ActivationContext parameter.

Or the constructor that takes ActivationArguments which in turn has an ActivationContext.



回答2:

ActivationContext is byte array that contains the ClickOnce deployment manifest for the application that is associated with this ActivationContext. It is used to get the ClickOnce deployment manifest for the current application.

if a ClickOnce application is running in the current AppDomain by checking the AppDomain.CurrentDomain.ActivationContext property. If that value is non-null, then the domain is running a ClickOnce application.

This can be examined by Checking the "Enable ClickOnce security settings" in Project Properties "Security" tab

In the correct context ClickOnce security settings is disabled. Because it is not a click once deployment. So the context also will be null by default