siccome mi sono reso che mi sono espresso come una mucca (per farmi un complimento) ci riprovo
---------------
allora ... a me servirebbe un sistema per caricare (e non scaricare, quindi possono rimanere nello stesso dominio) degli assembly esterni che uso come moduli
al momento faccio questo
codice:
objTmpAssembly = Assembly.LoadFrom(this.ModulesPath + "LabSoft.Modules.Module." + ModuleName + ".dll");
objTmpModule = (IModule)objTmpAssembly.CreateInstance("LabSoft.Modules.Module." + ModuleName + "." + ClassName);
carico l'assembly e creo un'instanza della classe che mi serve facendo un tipecasting tramite la classe l'interfaccia che implementa il modulo
a questo punto posso chiamare i metodi che ho definito nella classe ...
codice:
objTmpModule.ModuleStart();
e questo funziona perfettametne!
Il prossimo step sarà quello di creare un ModuleInit o ModuleInitialize dove passerò gli oggetti necessari per far lavorare il modulo anche sull'interfaccia grafica del form principale.
Premessa
non mi servono che i moduli comunichino tra loro e vorrei mantenere la cosa sul più semplice possibile dato che ancora non è che mi muovo tanto bene con queste cose, anche se imparo abbastanza in fretta ^^
quindi mi chiedevo:
- siccome si serve aggiungere dei menu al form principale, mi faccio restutire un array che aggiungo semplicemente al menu che mi interessa? oppure mi faccio restituire un'array che contiene un elenco di struct con le informazioni che mi servono per costruire poi l'array?
- Se dovessi utilizzare il secondo sistema come faccio a richiamare i metodi dell'assembly per come serve? Creo un metodo nell'interfaccia che si occupa di smistarmi le operazioni che richiedo e passo un array di object come parametri, esempre lo stesso metodo si occupa di smistare correttamente i parametri ai vari metodi interi richiesti da fuori?
- Mi serve anche permette l'aggiunta dinamica di alcuni "link" ad una lista ... lista che vorrei far generare all'utente partendo dai menu. Avete qualche idea?
[edit]
ho aggiunto il metodo ModuleInit e quindi adesso è anche possibile passare oggetti ai moduli, o per meglio dire parametri in maniera standard