.net - Current AppDomain loading assemblies outside of application base? -
i'm creating new sandbox appdomain applicationbase , privatebinpath (for example sake) has been set c:\myapp
. executing application running c:\somewhereelse
.
when otherdomain.load(...)
assembly, executing appdomain loading assembly. i'm determining checking getassemblies()
before load, , getassemblies()
after load.
why happening? suspect has meta-data needing available in executing appdomain , it's passed on new domain via 'cross boundary', calling domain loading assembly too. but! thought assembly couldn't loaded outside of it's applicationbase, unless in gac, in case, it's not.
can confusion?
in order not load second appdomain's assemblies parent domain, can't use otherdomain.load(...). have create marshalbyrefobject in child appdomain, , have code call appdomain.load(...).
example:
public class appdomaininitializer : marshalbyrefobject { public void initialize() { appdomain.load(...); } }
parent domain:
{ appdomain otherdomain = appdomain.createdomain(...); // create object in other domain objecthandle oh = activator.createinstance(otherdomain, assemblynme, "appdomaininitializer", ...); // marshall domain var initializer = (appdomaininitializer) oh.unwrap(); // proxy call load other domain dll's intializer.initialize(); }
Comments
Post a Comment