簡體   English   中英

C#從內部資源加載程序集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM