Che cosa è la differenza tra assemblaggio statico e dinamico. Solo il fatto che uno può essere caricato da un file e un altro può essere creato durante il programma in esecuzione?Tipi di montaggio - qual è la differenza
risposta
Gli assiemi statici possono includere tipi di .NET Framework (interfacce e classi), nonché risorse per l'assembly (bitmap, file JPEG, file di risorse e così via). Gli assiemi statici sono memorizzati su disco in file PE (portable executable). È inoltre possibile utilizzare .NET Framework per creare assiemi dinamici, che vengono eseguiti direttamente dalla memoria e non vengono salvati su disco prima dell'esecuzione. È possibile salvare assiemi dinamici sul disco dopo che sono stati eseguiti.
I gruppi statici sono quelli che vengono memorizzati sul disco in modo permanente. Possono includere classi .NET Framework, interfacce e file di risorse. Questi assembly non vengono caricati direttamente dalla memoria, ma vengono caricati direttamente dal disco quando CLR (Common Language RunTime) richiede loro. Questi assembly utilizzati per archiviare sul disco come file o set di file. Ogni volta che si compila il codice C#, si ottengono gli assembly STATIC.
Gli assiemi dinamici sono quegli assembly che non vengono memorizzati sul disco prima dell'esecuzione, infatti dopo l'esecuzione vengono memorizzati sul disco. Quando .NET runtime li chiama, vengono caricati direttamente dalla memoria non dal disco. Reflection emit fornisce molti modi per creare assiemi dinamici vuol dire che sono creati in memoria usando lo spazio dei nomi System.Reflection.emit. Lo spazio dei nomi System.Reflection.Emit contiene classi che consentono a un compilatore o strumento di emettere metadati e Microsoft intermediate language (MSIL) e opzionalmente genera un file PE su disco. Quando un'applicazione richiede i tipi all'interno di questi assembly, questi assembly dinamici vengono creati dinamicamente in fase di esecuzione
In parole semplici gli statici assemblano i normali assiemi con i quali interagiamo quotidianamente con esso caricano la risoluzione ecc. E la dinamica gli assiemi che si lo creo con la riflessione e invocando.
Fonti di informazioni: http://www.dotnetheaven.com/article/static-assembly-vs-dynamic-assembly-in-csharp e MSDN
anche io cerco di leggere e lavorare con 'System.Reflection.Emit' - posso creare (usando il tutorial step-bystep' qualche applicazione - ottieni una classe che può essere gestita di 1 di 4 varianti - secondo' AppDomain.DefineDynamicAssembly () '' AssemblyBuilderAccess '- reflection, Run, RunANdSave, Save. Prova ad usare save. Ora lo salvo - ho la lib (* .dll file), ma non vedo quando può essere utile .. – gbk
Buona domanda! Semplice ma non gestito molto! –