- Válságmódban a Samsung mobildivíziója
- Samsung Galaxy S25 - végre van kicsi!
- Vége a dalnak: nincs több Samsung harmonikamobil
- Magisk
- Apple Watch Sport - ez is csak egy okosóra
- Xiaomi 17 Ultra - jó az optikája
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Mobil flották
- Okosóra és okoskiegészítő topik
- Redmi Note 9 Pro [joyeuse]
Ú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!
- Válságmódban a Samsung mobildivíziója
- Elektromos autók - motorok
- Gitáros topic
- Samsung Galaxy S25 - végre van kicsi!
- Metal topik
- PlayStation 5
- Építő/felújító topik
- Ha az alaplapi hangchipnél jobbra váltanál, itt az új Sound Blaster hangkártya
- BMW topik
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
- 241 - Lenovo Legion 5 (15IRX10) - Intel Core i7-13650HX, RTX 5060
- Lenovo ThinkPad E15 Gen 2 15,6" - i7 1165G7, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4355
- ÚJ könyv: Walter Isaacson Elos Musk - keménykötésű
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


