top

程序集特性访问器

程序集特性访问器一般用在关于窗体里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
partial class FormAbout : Form
   {
       public FormAbout()
       {
           InitializeComponent();
           this.Text = String.Format("关于 {0}", AssemblyTitle);
           this.labelProductName.Text = AssemblyProduct;
           this.labelVersion.Text = String.Format("版本 {0}", AssemblyVersion);
           this.labelCopyright.Text = AssemblyCopyright;
           this.labelCompanyName.Text = AssemblyCompany;
           this.textBoxDescription.Text = AssemblyDescription;
       }
 
       #region 程序集特性访问器
 
       public string AssemblyTitle
       {
           get
           {
               object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
               if (attributes.Length > 0)
               {
                   AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
                   if (titleAttribute.Title != "")
                   {
                       return titleAttribute.Title;
                   }
               }
               return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
           }
       }
 
       public string AssemblyVersion
       {
           get
           {
               return Assembly.GetExecutingAssembly().GetName().Version.ToString();
           }
       }
 
       public string AssemblyDescription
       {
           get
           {
               object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
               if (attributes.Length == 0)
               {
                   return "";
               }
               return ((AssemblyDescriptionAttribute)attributes[0]).Description;
           }
       }
 
       public string AssemblyProduct
       {
           get
           {
               object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
               if (attributes.Length == 0)
               {
                   return "";
               }
               return ((AssemblyProductAttribute)attributes[0]).Product;
           }
       }
 
       public string AssemblyCopyright
       {
           get
           {
               object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
               if (attributes.Length == 0)
               {
                   return "";
               }
               return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
           }
       }
 
       public string AssemblyCompany
       {
           get
           {
               object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
               if (attributes.Length == 0)
               {
                   return "";
               }
               return ((AssemblyCompanyAttribute)attributes[0]).Company;
           }
       }
       #endregion
 
       private void okButton_Click(object sender, EventArgs e)
       {
           this.Close();
       }
   }
posted @   桦仔  阅读(729)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示