gpt4 book ai didi

c# - 从程序集 list 文件中读取程序集 GUID 的最快方法

转载 作者:行者123 更新时间:2023-11-30 13:00:22 25 4
gpt4 key购买 nike

我尝试从许多程序集中获取 GUID。

我选择了与 Reflector 读取 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 读取过程更快?还有别的办法吗?我只想打开 list 文件并读取 AssemblyInfo.cs 文件中可用的相同 GUID [assembly: Guid("98c11478-7295-4c10-a97f-4b6805df6191")

我需要 ReflectionOnlyLoad 方法吗?

最佳答案

您可以查看 Vijay Mukhi 的代码,who wrote his version of ILDASM (包括源代码)。它以与 Microsoft 的 ILDASM 非常相似的方式解析程序集的 list 。然后,您可以将代码缩减为仅包含您需要的功能。

关于c# - 从程序集 list 文件中读取程序集 GUID 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22230720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com