第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在一個dll里判斷程序是否引用了另一個dll?

如何在一個dll里判斷程序是否引用了另一個dll?

喵喵時光機(jī) 2018-11-14 05:02:43
如題要用try,catch做嗎
查看完整描述

2 回答

?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

一樓介紹了方法,我來具體化一下代碼:

 

你需要得到被一個特定的程序集所引用的所有程序集。這個信息可以告訴你這個程序集是否在引用一個或多個你所創(chuàng)建的程序集,或者你的程序集是否在引用其他特定的程序集。

解決方法:

使用Assembly.GetReferencedAssemblies方法去得到一個程序集所引用的程序集。例如:

public static string[] BuildDependentAssemblyList(string path, List<string> assemblies)
{
  // 維護(hù)一個本程序集需要的程序集列表
  if (assemblies == null)
    assemblies = new List<string>();

  // 是否已經(jīng)包含這個路徑的程序了
  if (assemblies.Contains(path) == true)     

    return (new string[0]);   

  Assembly asm = null;
  // 檢查這個路徑
    // 看是一個程序名還是一個路徑
  if ((path.IndexOf(Path.DirectorySeparatorChar, 0, path.Length) != -1) || (path.IndexOf(Path.AltDirectorySeparatorChar, 0, path.Length) != -1)) {
     // 從這個路徑加載程序集
      asm = Assembly.ReflectionOnlyLoadFrom(path);
   }
  else
  {
    // 是一個程序集名稱
    asm = Assembly.ReflectionOnlyLoad(path);
  }

  // 把程序集添加到列表中
  if (asm != null)
  {
  assemblies.Add(path);
  }
  // 獲取所引用的程序集
  AssemblyName[] imports = asm.GetReferencedAssemblies();

  // 遍歷所有的引用,并進(jìn)行遞歸
  foreach (AssemblyName asmName in imports) {
     BuildDependentAssemblyList(asmName.FullName, assemblies);
  }

   string[] temp = new string[assemblies.Count];
   assemblies.CopyTo(temp, 0);
   return (temp);
 }

 這段代碼返回一個包含有原程序集、所有其引用的程序集和這些程序集依賴的其他程序集的string數(shù)組。


查看完整回答
反對 回復(fù) 2018-11-20
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊

MSDN

ms-help://MS.MSDNQTR.v90.chs/fxref_mscorlib/html/2fcfa8fc-9a2b-af3a-8224-cee181149029.htm

Assembly.GetReferencedAssemblies 方法


查看完整回答
反對 回復(fù) 2018-11-20
  • 2 回答
  • 0 關(guān)注
  • 974 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號