Create application domain and load assembly

2019-03-04 18:16发布

问题:

I want to create an application domain with default permissions and load assembly into the application domain with default privileges and execute the methods inside the assembly.

回答1:

You may take a look at the following article on MSDN. Or if you want to construct an instance of some type inside another AppDomain (assuming this type has a default constructor):

var domain = AppDomain.CreateDomain("NewAppDomain");
var path = @"C:\work\SomeAssembly.dll";
var t = typeof(SomeType);
var instance = (SomeType)domain.CreateInstanceFromAndUnwrap(path, t.FullName);

The instance variable returned with this method lives on your newly created application domain and you are ready to manipulate it.



回答2:

Perhaps this helps

Can I reload an assembly in Mono CSharpRepl?

var dom = AppDomain.CreateDomain("tmp");
dom.Load("System.Core");
AppDomain.Unload(dom);

See also

Using multiple versions of the same DLL