C# 我可以从webconfig文件访问程序集GUID吗
我的程序集信息中有一个GUID,该GUID在创建项目时自动创建。 当前系统要求数据库上有匹配的GUID,以便识别解决方案 (是的,是VB.net)C# 我可以从webconfig文件访问程序集GUID吗,c#,.net,vb.net,C#,.net,Vb.net,我的程序集信息中有一个GUID,该GUID在创建项目时自动创建。 当前系统要求数据库上有匹配的GUID,以便识别解决方案 (是的,是VB.net) 我正在做的是手动将此GUID复制到webconfig中,作为解决方案的设置,从而将其添加到Settings.Designer.vb文件中 阿拉 43aca7cb-9360-4642-adc5-6d29b4732bed 从那里它被传递到数据库或任何地方。这样做不太麻烦,而且GUID不应该改变,但我忍不住认为,如果我不必在每个解决方案中复制GUI
我正在做的是手动将此GUID复制到webconfig中,作为解决方案的设置,从而将其添加到Settings.Designer.vb文件中
阿拉
43aca7cb-9360-4642-adc5-6d29b4732bed
从那里它被传递到数据库或任何地方。这样做不太麻烦,而且GUID不应该改变,但我忍不住认为,如果我不必在每个解决方案中复制GUID字符串,而是有一些直接引用程序集值的内容,那么会更整洁
这可能吗
谢谢您提供的任何信息。类似于:
var assemblyName = "System"; // assembly to get the guid
var assembly = AppDomain.CurrentDomain
.GetAssemblies()
.FirstOrDefault(a => a.GetName().Name == assemblyName);
var attr = assembly
.GetCustomAttributes(false)
.OfType<GuidAttribute>()
.FirstOrDefault();
var guid = attr.Value;
var assemblyName=“系统”//程序集以获取guid
var assembly=AppDomain.CurrentDomain
.getAssemblys()
.FirstOrDefault(a=>a.GetName().Name==assemblyName);
var attr=assembly
.GetCustomAttributes(false)
第()类
.FirstOrDefault();
var guid=属性值;
但是IMO似乎最好将guid保存在web.config中,因为它是“硬编码”的 谢谢,我认为可以在代码隐藏中执行此操作,因此看起来不能在WebConfig中仅包含[Assembly.Guid]之类的内容,或者可以在web.config的AppSettings中添加程序集名称,然后在运行时可以使用上面的代码从所需程序集读取Guid。无法执行[assembly.guid],如果您希望某些东西以某种特定方式工作,则必须编写一些代码。
<setting name="ApplicationId" serializeAs="String">
<value>43aca7cb-9360-4642-adc5-6d29b4732bed</value>
</setting>
var assemblyName = "System"; // assembly to get the guid
var assembly = AppDomain.CurrentDomain
.GetAssemblies()
.FirstOrDefault(a => a.GetName().Name == assemblyName);
var attr = assembly
.GetCustomAttributes(false)
.OfType<GuidAttribute>()
.FirstOrDefault();
var guid = attr.Value;