많은 어셈블리에서 GUID를 가져 오려고합니다.어셈블리 매니페스트 파일에서 어셈블리 GUID를 읽는 가장 빠른 방법
나는 리플렉터가 GUID를 읽는 것과 같은 방법을 선택했다. 그러나 지금까지는 매우 느린 과정이었다. 일부 (연결) DLL 파일이
Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
string missedAssemblyFullName = args.Name;
Assembly assembly = Assembly.ReflectionOnlyLoad(missedAssemblyFullName);
return assembly;
}
//... and code
string exe = "test.exe";
AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve +=CurrentDomain_ReflectionOnlyAssemblyResolve;
Assembly assembly = null;
if (assembly != null)
{
assembly = Assembly.ReflectionOnlyLoadFrom(exe);
if (assembly != null)
{
var test = CustomAttributeData.GetCustomAttributes(assembly);
foreach (var elem in test)
{
if (elem.AttributeType.Name == "GuidAttribute")
assemblyGuid = (string)elem.ConstructorArguments[0].Value;
}
}
}
를 누락하는 경우 또한, 나는이 GUID 읽기 과정을 빠르게 할 수있는 방법, 많은 예외를받을? 다른 방법이 있습니까? 그냥 manifest 파일을 열고 AssemblyInfo.cs 파일에서 사용할 수있는 동일한 GUID를 읽으려고합니다. [assembly : Guid ("98c11478-7295-4c10-a97f-4b6805df6191")
ReflectionOnlyLoad 메서드가 필요합니까?