Odpovědět 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
     
     Odpovědět

    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.