Volání třídy z jiného adresáře
-
12. března 2013 19:56
Zdravím,
chci se zeptat, zda je možné, aby aplikace mohla zavolat nebo vytvořit instanci třídy, která se nachází v jiné složce a není součástí samotné aplikace. Plánuji něco podobného využít ve své aplikaci, kterou bude možné doplňovat o různé komponenty v podobě zmíněných třídách. Jediný způsob jak toho docílit, který znám, je vytvoření "vlastního skriptovacího jazyka", ve kterém by byla komponenta napsaná a aplikace by jednotlivé příkazy vyhodnotila v podmínkách a stringových metodách.
Bohužel vytvořit něco takového je docela dlouhodobý problém a nebude to stoprocentně efektivní. proto se ptám na tu věc s těmi třídami. Pokud někdo zná odpověď, prosím, napište ji, pomůžete mě i mým "spolupracovníkům".
Všechny reakce
-
13. března 2013 12:35
Dost záleží na tvých konkrétních požadavcích a možnostech, ale rozhodně bych ti doporučil podívat se na MEF (Managed Extensibility Framework) - ten dokáže načíst speciálně označené typy ze všech assemblies v konkrétním adresáři a umístit jejich instance do tebou definovaných míst v applikaci.
Jinak samozřejmě můžeš i načítat assemblies manuálně a hledat konkrétní typy pomocí reflexe, ale pokud můžeš použít MEF, neváhal bych.
- Označen jako odpověď DISCOVERY.2 26. března 2013 17:42
-
26. března 2013 17:41
Skvělé, děkuji. Něco takového jsem potřeboval, ale na MSDN mi ta ukázka moc nepomohla pochopit jak co funguje, takže jsem zkoušel najít návod a našel jsem toto:
From Zero to Proficient with MEF - CodeProject
Rozhodně je to popasné podrobněji a je tam více příkladů. Snad to pomůže každému, kdo má nebo měl podobný problém.