.net - 读取程序集 Guid,而不将 DLL 锁定在中等信任的 ASP.Net 应用程序域中

标签 .net asp.net vb.net reflection appdomain

是否可以从程序集中读取 GUID,而无需将其实际加载到当前应用程序域中。

通常,Assembly.Load 将 DLL 加载到应用程序域中。我只想读取值。

GUID的描述是

'The following GUID is for the ID of the typelib 
' if this project is exposed to COM
<Assembly: Guid("DEDDE61CD-928E-4ACD-8C25-3B8577284819")> 

主要的事情是我不想锁定文件,这样就不会出现“另一个进程正在访问该文件”错误。

最佳答案

如果使用 Assembly.ReflectionOnlyLoad(byte[]) 加载程序集它会将其加载为影子并且不会锁定文件。

var bytes = File.ReadAllBytes(path);
var assembly = Assembly.ReflectionOnlyLoad(bytes);

这通常是诸如 Reflector 之类的工具在不锁定程序集的情况下访问程序集的方式。

关于.net - 读取程序集 Guid,而不将 DLL 锁定在中等信任的 ASP.Net 应用程序域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2922775/

相关文章:

c# - Try-Catch 未知行为

c# - 循环枚举器的 PLINQ 迭代导致死锁

.net - F# 在隐藏记录类型中引发警告

asp.net - 在 asp.net 中使用数据列表控件显示来自 SQL Server 数据库的客户

asp.net - 为什么 Visual Studio 不支持 <main>?

.net - 如何循环遍历一个类的所有属性?

.net - 从 WPF 应用程序启动 metro 应用程序(相机)

c# - ASP.NET Core 2.0 依赖注入(inject)默认实例

sql-server - SQL查询对datagridview返回0

.net - 将 LINQ to XML 结果转换为 VB.NET 中的通用列表。奇数错误