Új hozzászólás Aktív témák
-
NoMan
csendes tag
Kedves Fórumozók!
A következő problémával fordulnék hozzátok. Már 1 napja a google-t bújom, de igazi megoldást még nem találtam a következő problémára: Adott egy DLL fájl, benne egy formmal.
Ebből a DLL-ből kellene betölteni a Formot (erre már találtam több megoldást is), viszont van egy kis csavar a dologban (erre nem találtam megoldást). A példányosítás előtt ellenőrizni kéne, hogy futás közben változott-e a DLL és ha igen, akkor újra kéne tölteni a DLL-t és úgy példányosítani.
Ez azért lenne fontos, mert a főprogramból egy példány fut és az nem zárható be / nem indítható újra. Viszont a DLL-ben megvalósítottt formon időnként változtatnom kell. Melyet úgy szeretnék megoldani, hogy kicserélem a főprogram alatt a DLL fájlokat és amikor újra azt a Formot szeretné a főprogi betölteni, akkor már az új, megváltoztatott változat töltődik be.
Ezzel a módszerrel próbálkoztam:
Assembly assembly = Assembly.LoadFile(Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "dashboardBasic.dll");
Type type = assembly.GetType("dashboardBasic.FormDashboardBasic");
Form form = (Form)Activator.CreateInstance(type);
form.MdiParent = this;
form.Show();Ez betöltötte a DLL-t és az alapján meg is jelenítette az űrlapot, de ha kicseréltem a DLL-t, akkor a régi űrlapot nyitotta meg, egészen addig, amíg a főprogit újra nem indítottam.
Egy másik megoldás, de ez szintén ugyan ezen ok miatt zsákutca volt:
AppDomain TestDomain = AppDomain.CreateDomain("dashboardBasic");
Assembly testDLL = TestDomain.Load(AssemblyName.GetAssemblyName(Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "dashboardBasic.dll"));
Type type = testDLL.GetType("dashboardBasic.FormDashboardBasic");
Form form = (Form)Activator.CreateInstance(type);
form.MdiParent = this;
form.Show();
AppDomain.Unload(TestDomain);Valakinek valami jó ötlete a probléma megoldására?
Előre is köszönöm az építő jellegű hozzászólásokat.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ThinkPad X1 Extreme Gen 3 (i7, 32GB, GTX1650Ti, 4K) Magyar, szép állapot
- Erying ITX 12800H alaplap (Integrált 14 magos i7 CPU, 3x NVMe) Hiánytalan tartozékokkal
- MacBook Pro 13.3 2017 8GB ram 512GB SSD
- UGREEN NASync DXP6800 Pro NAS, i5 1235u (10-mag), 8/32GB DDR5, 6 lemezhely, 2x10G, 2x Thunderbolt 4
- Z840 - 2x E52697 v4 18 core 2.3GHz - 1000w tap - 32 GB DDR4 - 3 év garanciával
- ÚJ Asus TUF A14 FA401 -14"2.5K 165Hz - Ryzen 7 260 - 32GB - 1TB - Win11-RTX 5060 -2 év gari - MAGYAR
- Acer Chromebase All-in-One PC 23.8" Touchscreen
- AKCIÓ! MSI Claw A1M 512GB SSD kézikonzol garanciával hibátlan működéssel
- 171 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080 (ELKELT)
- SzoftverPremium.hu
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
