Ciao, allora ho il seguente problema:
ho cercato dappertutto il sistema per importare dinamicamente classe metodi e altro da una dll esterna e ho trovato il sistema chiamato Reflection. Allora io agisco in questo modo
Ora vorrei implementare i metodi a mio piacimento e realizzo:codice:using System; using System.Collections.Generic; using System.Text; namespace KeyCrypt { interface KeyCrypting { string fileconvert(string path); double version(); string idcheck(); } }
Tutto ciò nel mio progetto di libreria, compilo e ottengo la mia bella dll. Quindi vado nel sorgente dove mi serve e faccio:codice:using System; using System.Collections.Generic; using System.Text; using System.IO; namespace KeyCrypt { class BlaBla : KeyCrypting { private double cryptversion = 1.0; string fileconvert(string path) { return "fileconvert"; } double version() { return cryptversion; } string idcheck() { return "ciaciao"; } } }
Compila e funziona anche questo (KryptingKeyPath è una stringa dove c'è il percorso corretto della mia dll precedentemente compilata), però arriva all'istruzione dove deve creare l'oggetto e mi da InvalidCastException dicendo che la classe Blabla non può essere castata a KeyCrypting quando invece la implementa e mi compila la dllcodice:Assembly a = Assembly.LoadFile(KryptingKeyPath); foreach (Type tipo in a.GetTypes()) if (tipo.GetInterface("KeyCrypting") != null) { KeyCrypting skeycript = (KeyCrypting)Activator.CreateInstance(tipo); String b= skeycript.ToString(); }
Qualcuno sa aiutarmi?


Rispondi quotando