AssemblyTitle与AssemblyTitleAttribute

时间:2018-06-07 03:59:27

标签: c# visual-studio monodevelop

在单一项目(visual studio)的AssemblyInfo.cs文件中,有一组属性,这些属性填充了归因于项目的各种值。一个例子:

[assembly: AssemblyTitle("AssemblyTitle")]
[assembly: AssemblyDescription("AssemblyDescription")]
[assembly: AssemblyConfiguration("AssemblyConfiguration")]
[assembly: AssemblyCompany("AssemblyCompany")]
[assembly: AssemblyProduct("AssemblyProduct")

我遇到了一个示例,其中汇编信息已合并到项目主类文件的主.cs文件中。我意识到这样做是为了简洁和易于演示。

当我最初运行项目时,由于重复定义而导致错误,但是,在检查时,定义略微不同。

[assembly: AssemblyTitleAttribute("AssemblyTitle")]
[assembly: AssemblyDescriptionAttribute("AssemblyDescription")]
[assembly: AssemblyVersionAttribute("1.0.*")]
[assembly: AssemblyCopyrightAttribute("AssemblyCopyright")]

这些属性后来被用于:

using System.Reflection;

static public class AboutDialogExample
{
    public static void Main()
    {
        Application.Init();

        AboutDialog about = new AboutDialog();
        Assembly asm = Assembly.GetExecutingAssembly();

        about.ProgramName = (asm.GetCustomAttributes( typeof(AssemblyTitleAttribute), false)[0] as AssemblyTitleAttribute).Title;
        about.Comments = (asm.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)[0] as AssemblyDescriptionAttribute).Description;
        about.Copyright = (asm.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0] as AssemblyCopyrightAttribute).Copyright;

我意识到他们必须翻译成同样的东西,但在努力解决原因时,我只是不明白其中的差异。

我从本地文件中的Attribute定义中移除了assembly部分,这没有任何区别,尽管在typeof表达式中,这是一个构建错误,显然并没有这样做。编译。

使用AssemblyXxxAttribute与AssemblyXxx

的区别和界限是什么?

(其中Xxx只是汇编集中的任意属性)

0 个答案:

没有答案