Hirdetés
- VoLTE/VoWiFi
- Soundcore Sleep A30 - a hosszú házasság titka
- Google Pixel topik
- Samsung Galaxy S25 - végre van kicsi!
- Neked tükröt, az iPhone Airnek emléket állít a Realme
- Apple iPhone 13 mini - miért nem veszik elegen?
- Milyen okostelefont vegyek?
- OnePlus 15 - van plusz energia
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Samsung Galaxy Z Fold5 - toldozás-foldozás
Ú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!
- Melyik tápegységet vegyem?
- Mibe tegyem a megtakarításaimat?
- VoLTE/VoWiFi
- Linux kezdőknek
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Érkezik az On the Edge, a körökre osztott wuxia RPG
- Két 8 GB-os VGA-ra teszi fel ezt a negyedévet az NVIDIA?
- Soundcore Sleep A30 - a hosszú házasság titka
- Épített vízhűtés (nem kompakt) topic
- További aktív témák...
- Samsung Galaxy S25 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Mi Watch S1 Pro okosóra
- Akciós kisWorkstation! Dell Precision 3570 i7-1255U 4.7GHz / 16GB / 512GB / Quadro T550 4GB FHD 15"
- Apple iPhone 17 Pro Max 256GB,Újszerű,Dobozaval,24 hónap garanciával
- HIBÁTLAN iPhone 11 64GB White-1 ÉV GARANCIA - Kártyafüggetlen, MS4389, 100% Akksi
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


