Anche se questa sarà una sfida, probabilmente dovrebbe essere possibile. Se si guarda a ciò che fa il framework stesso, ci sono alcune opzioni però.
Ad esempio, la classe Regex
utilizza System.Reflection.Emit
per compilare le tue espressioni regulare;
XmlSerializer
utilizza System.CodeDom
per generare assiemi per serializzazione e deserializzazione di XML;
ASP.Net chiama il compilatore C# (csc.exe
) per compilare le pagine ASPX (e tutte le altre parti dell'applicazione ASP.Net) in un assieme.
Queste sono tutte le opzioni per creare un assembly valido, ordinato da molto complesso, a relativamente fattibile.
E per quanto riguarda la parte Silverlight della domanda. Questo dovrebbe essere semplicemente il caso di creare un progetto valido. Probabilmente il modo più semplice per procedere è creare il progetto Silverlight più semplice a cui puoi pensare (quindi, senza alcun contenuto) e provare ad emularlo con una delle tre opzioni. Se hai in esecuzione, aggiungi gradualmente le parti finché non hai quello che ti serve.
fonte
2010-10-30 06:51:26
Wow, questa è una domanda piuttosto interessante. Hai provato qualcosa da solo? Non riesco a pensare a una ragione per cui non sarebbe possibile, ma non lo so per certo. Immagino che una cosa importante sia assicurarsi che l'assembly generato faccia riferimento alle versioni corrette degli assembly della piattaforma Silverlight (mscorlib, System.Windows, ecc.) E non le loro controparti desktop. Un'applicazione Silverlight non è altro che una raccolta di assiemi e un file AppManifest.xaml in un file zip con estensione .xap. Sono curioso di sapere qual è lo scenario che ti porta a voler fare questo? – KeithMahoney
Grazie Keith. Ho cercato MSBuild per la stessa opzione, ma la gente sembra suggerire che MSBuild è eccessivo e CodeDom.Compiler è sufficiente per situazioni normali - Non so se è il caso di Silverlight. Uno scenario sarebbe un creatore di tessere eGreeting in cui vi è una forte personalizzazione (so che questo potrebbe avere un approccio diverso, ma per motivi di argomentazione, diciamo solo che questo è il modo in cui deve essere) - un sito Web ASP.NET di base che prende un sacco di diversi parametri dall'input dell'utente e il risultato è un'app compilata Silverlight. Fatelo molte volte. – Stan
Per il tuo scenario, ti suggerirei di adottare un approccio alternativo, ad es. un'app generica di Silverlight che scarica dinamicamente tutti i dati di personalizzazione in fase di runtime. Se decidi di seguire il percorso di generazione del codice: vorrei poterti dare una risposta migliore di "non c'è una ragione ovvia per cui non dovrebbe funzionare". – KeithMahoney