.net 读取项目AssemblyInfo.cs属性值

转载 2012年03月31日 11:57:08

.net 读取项目AssemblyInfo.cs属性值的实现代码。

We write all those code repetitively for dynamic assembly loading and checking to verify few properties on assemblies. It would be a great stop to write all such things in the assemblyinfo.cs (because it needs to completely describe the assembly that it is intended to serve for) You can define your About form of the application entirely using the AssemblyInfo.cs
How to use the following info:
AssemblyInfo ainfo = new AssemblyInfo();
frmAbout.Text = ainfo.Title;
frmAbout.menuAbt.Text = string.Format("&About{0}..",ainfo.Title);
frmAbout.Text = "About " + this.Owner.Text;
frmAbout.Icon = this.Owner.Icon;
//You can set the icon like this on the abt form.
frmAbout.pictureBox1.Image = this.Owner.Icon.ToBitmap();
frmAbout.lblTitle.Text = ainfo.Title;
frmAbout.lblVersion.Text = ainfo.Version;
frmAbout.lblCopyright.Text = ainfo.Copyright;
frmAbout.lblDescription.Text = ainfo.Description;
frmAbout.lblCodebase.Text = ainfo.CodeBase;
下面是具体的实现代码。

using System; 
using System.Reflection; 
using System.Runtime.CompilerServices; 
[assembly: AssemblyTitle("Demo Title")] 
[assembly: AssemblyDescription("Demo app that reads from the Assembly Info file description")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("World Company")] 
[assembly: AssemblyProduct("Not for commercial use.")] 
[assembly: AssemblyCopyright("open source (US)")] 
[assembly: AssemblyTrademark("")] 
[assembly: AssemblyCulture("")] 
[assembly: CLSCompliant(true)] 
[assembly: AssemblyDelaySign(false)] 
[assembly: AssemblyKeyFile("")] 
[assembly: AssemblyKeyName("")] 
// 
// Version information for an assembly consists of the following four values: 
// 
// Major Version 
// Minor Version 
// Build Number 
// Revision 
// 
// You can specify all the values or you can default the Revision and Build Numbers 
// by using the '*' as shown below: 
[assembly: AssemblyVersion("1.0.1.1")] 
# region "Class to get the information for AboutForm" 
/* This class uses the System.Reflection.Assembly class to access assembly meta-data. 
* This class is not a normal feature of AssmblyInfo.cs */ 
/// <summary> 
/// AssemblyInfo class. 
/// </summary> 
public class AssemblyInfo 
{ 
//Used by functions to access information from Assembly Attributes 
/// <summary> 
/// myType. 
/// </summary> 
private Type myType; 
/// <summary> 
/// Initializes a new instance of the <see cref="AssemblyInfo"/> class. 
/// </summary> 
public AssemblyInfo() 
{ 
//Shellform here denotes the actual form. 
myType = typeof(ShellForm); 
} 
/// <summary> 
/// Gets the name of the assembly. 
/// </summary> 
/// <value>The name of the assembly.</value> 
public String AssemblyName 
{ 
get 
{ 
return myType.Assembly.GetName().Name.ToString(); 
} 
} 
/// <summary> 
/// Gets the full name of the assembly. 
/// </summary> 
/// <value>The full name of the assembly.</value> 
public String AssemblyFullName 
{ 
get 
{ 
return myType.Assembly.GetName().FullName.ToString(); 
} 
} 
/// <summary> 
/// Gets the code base. 
/// </summary> 
/// <value>The code base.</value> 
public String CodeBase 
{ 
get 
{ 
return myType.Assembly.CodeBase; 
} 
} 
/// <summary> 
/// Gets the copyright. 
/// </summary> 
/// <value>The copyright.</value> 
public String Copyright 
{ 
get 
{ 
Type att = typeof(AssemblyCopyrightAttribute); 
object[] r = myType.Assembly.GetCustomAttributes(att, false); 
AssemblyCopyrightAttribute copyattr = (AssemblyCopyrightAttribute)r[0]; 
return copyattr.Copyright; 
} 
} 
/// <summary> 
/// Gets the company. 
/// </summary> 
/// <value>The company.</value> 
public String Company 
{ 
get 
{ 
Type att = typeof(AssemblyCompanyAttribute); 
object[] r = myType.Assembly.GetCustomAttributes(att, false); 
AssemblyCompanyAttribute compattr = (AssemblyCompanyAttribute)r[0]; 
return compattr.Company; 
} 
} 
/// <summary> 
/// Gets the description. 
/// </summary> 
/// <value>The description.</value> 
public String Description 
{ 
get 
{ 
Type att = typeof(AssemblyDescriptionAttribute); 
object[] r = myType.Assembly.GetCustomAttributes(att, false); 
AssemblyDescriptionAttribute descattr = (AssemblyDescriptionAttribute)r[0]; 
return descattr.Description; 
} 
} 
/// <summary> 
/// Gets the product. 
/// </summary> 
/// <value>The product.</value> 
public String Product 
{ 
get 
{ 
Type att = typeof(AssemblyProductAttribute); 
object[] r = myType.Assembly.GetCustomAttributes(att, false); 
AssemblyProductAttribute prodattr = (AssemblyProductAttribute)r[0]; 
return prodattr.Product; 
} 
} 
/// <summary> 
/// Gets the title. 
/// </summary> 
/// <value>The title.</value> 
public String Title 
{ 
get 
{ 
Type att = typeof(AssemblyTitleAttribute); 
object[] r = myType.Assembly.GetCustomAttributes(att, false); 
AssemblyTitleAttribute titleattr = (AssemblyTitleAttribute)r[0]; 
return titleattr.Title; 
} 
} 
/// <summary> 
/// Gets the version. 
/// </summary> 
/// <value>The version.</value> 
public String Version 
{ 
get 
{ 
return myType.Assembly.GetName().Version.ToString(); 
} 
} 
} 
# endregion
详细出处参考:http://www.jb51.net/article/18650.htm


详细出处参考:http://www.jb51.net/article/18650.htm

 

相关文章推荐

.Net魔法堂:AssemblyInfo.cs文件详解

.net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属...

ASP.NET中Json序列化指定对象的部分属性值

一、实现代码 using System; using System.Collections.Generic; using System.Web.Script.Seri...
  • whaxrl
  • whaxrl
  • 2016年05月05日 11:46
  • 1066

读取XML属性值.rar

  • 2010年07月02日 11:32
  • 40KB
  • 下载

.net网站项目的aspx.cs文件修改无用

因为课程的原因,下载了一个网站的模板下来,想要改一下,发下修改了后台代码并没有用,甚至删了所有的.aspx.cs文件也没有什么用,长时间地寻找答案后我找到两个解决方案。(本文只针对.net网站,我是用...
  • sj6Even
  • sj6Even
  • 2017年05月15日 20:47
  • 212

CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D...
  • hnliwh
  • hnliwh
  • 2012年09月10日 16:22
  • 871

web项目运行时(如JSON parse)手动注入@Autowired等注解的属性值-1

1.需求:通过JSON parse成具体对象,对象中有@Autowired,@Resource注解的属性如何注入? Spring Bean管理的Spring注解的@Autowired或者@R...

Maven实现项目编译时不同命令加载不同属性值功能

上一篇文章中,简单的介绍了通过工具类在项目全局读取属性文件的实现方法。其实我们在开发一个项目时,经常会遇到开发、测试、生产等多个运行环境。在这些不同的环境中,项目中使用到的常量、属性值也不尽相同。如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net 读取项目AssemblyInfo.cs属性值
举报原因:
原因补充:

(最多只允许输入30个字)