2
我收到包含程序集數據的字節數組。 如何在不加載程序集的情況下從此數據中獲取程序集名稱?如何從包含程序集的字節數組中獲取程序集名稱?
var assemblyName = GetAssemblyName(byte[] asmData);//doesn't load assembly to appDomain.
我收到包含程序集數據的字節數組。 如何在不加載程序集的情況下從此數據中獲取程序集名稱?如何從包含程序集的字節數組中獲取程序集名稱?
var assemblyName = GetAssemblyName(byte[] asmData);//doesn't load assembly to appDomain.
要獲得大會的名稱,而不加載到當前應用程序域,創建一個新的AppDomain,使用AppDomain.Load然後調用FullName屬性。例如:
byte[] asmData; // Contains the assembly data
AppDomain appDomain = AppDomain.Create("MyDomain");
Assembly assembly = appDomain.Load(asmData);
string name = assembly.FullName;
AppDomain.Unload(Unload);
根據MSDN,假設沒有其它的結構域已加載的組件,但是應當不被加載到當前應用程序域被卸載。
如果您不想將其加載到任何應用程序域中,請將字節保存到文件並使用AssemblyName.GetAssemblyName方法。
謝謝你的回答。 我認爲這是獲取組裝標識信息的昂貴方式。 – void
@void如果速度很關鍵,調用者是否可以使用字節數組提供程序集名稱? – akton
是的,它可以。我們這樣做了。但是從飛行的字節數組檢測名稱是可取的。 – void