0

我的程序集信息中有一个 GUID,它是在创建项目时自动创建的。当前系统需要数据库上匹配的 GUID,以便识别解决方案。

(是的,它是 VB.net)

 <Assembly: Guid("43aca7cb-9360-4642-adc5-6d29b4732bed")> 

我正在做的是手动将此 GUID 复制到 webconfig 作为解决方案的设置,这会将其添加到 Settings.Designer.vb 文件中。

  <setting name="ApplicationId" serializeAs="String">
    <value>43aca7cb-9360-4642-adc5-6d29b4732bed</value>
  </setting>

从那里它被传递到数据库或任何地方。这样做并不麻烦,而且 GUID 不应该改变,但我不禁认为如果我不必在每个解决方案中复制 GUID 字符串会更整洁,但有一些引用直接装配值。

这可能吗?

感谢您提供任何信息。

4

1 回答 1

1

就像是:

 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;

但是 IMO 似乎最好将 guid 保留在 web.config 中,因为它在那里是“硬编码”的。

于 2012-08-27T13:51:30.330 回答