Is er in het .NET Compact Framework een manier om een assembly te laden in een application domain? Op de desktop versie kan ik simpelweg dit uitvoeren.
Hier heb ik dan een assembly die geladen is in een application domain. Op het .net cf vindt ik geen gelijkaardig iets. Ik kan er een application domain aanmaken en een assembly in uitvoeren:
Het probleem is dat deze hier direct uitgevoerd lijkt te worden wat ik niet wil. Ik wil een instantie kunnen aanmaken van een bepaald type in de assembly. Dit gaat ook op het .net CF maar zonder dat ik deze kan inladen in een apparte applicatie domein:
Is er een manier om beide te combineren op het .NET CF? Ik had dus graag een assembly ingeladen in een apparte application domain (niet uitvoeren direct) en daarna een instantie gemaakt van een type in de ingeladen assembly.
C#:
1
2
3
| //appdom = application domain Assembly asm = appdom.Load(assemblyName); |
Hier heb ik dan een assembly die geladen is in een application domain. Op het .net cf vindt ik geen gelijkaardig iets. Ik kan er een application domain aanmaken en een assembly in uitvoeren:
C#:
1
2
3
| AppDomain appdom = AppDomain.CreateDomain("loader_domain", null); appdom.ExecuteAssembly(assem); |
Het probleem is dat deze hier direct uitgevoerd lijkt te worden wat ik niet wil. Ik wil een instantie kunnen aanmaken van een bepaald type in de assembly. Dit gaat ook op het .net CF maar zonder dat ik deze kan inladen in een apparte applicatie domein:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Assembly asm = Assembly.LoadFrom(assemblyName); //case gevoelig bool gevonden = false; foreach (Type t in asm.GetTypes()) { foreach (Type iface in t.GetInterfaces()) { if (iface.Equals(typeof(Movable_Application))) { movableApp = (Movable_Application)Activator.CreateInstance(t); gevonden = true; } } } |
Is er een manier om beide te combineren op het .NET CF? Ik had dus graag een assembly ingeladen in een apparte application domain (niet uitvoeren direct) en daarna een instantie gemaakt van een type in de ingeladen assembly.