[英]C# Loading assemblies from internal resources
我目前正在Winform中使用以下代碼,該代碼是由另一個應用程序以編程方式生成和編譯的,在此過程中,我將程序集嵌入Winform的資源中,因此不需要外部引用。 每當我們嘗試解析程序集並從資源中加載它時,就會調用以下代碼。
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
String resourceName = "AssemblyLoadingAndReflection." +
new AssemblyName(args.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) {
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
但是問題是,這似乎僅在.net 4中有效,理想情況下,我需要在.net 2中有效,以便可以將創建的winform發送給客戶端,因為.net 2框架是隨Windows安裝的,但.net 4不是。 如何在.net 2中獲得相同的結果?
C#2不支持lambda語法。使用
AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender, AssemblyResolveEventArgs args) {
...
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.