AssemblyInfo.cs文件主要用来设定生成的dll程序集的一些常规信息, 部分信息可以在引用dll时
从属性中直接看到.
// 标题,属性中不可见
// 默认值是DLL库名,可以修改成任意值,不影响使用.
// 注意: 千万不要当成生成的DLL的名字,生成的DLL的名字是你建立类库时输入的那个名字。
[assembly: AssemblyTitle("WebApplication01")]
// 描述,属性中可见。
[assembly: AssemblyDescription("")]
// 文化信息,属性中可见
// 注意:调用DLL时通过assembly的fullname来找,如“ClassLibraryForReadingInfo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
// 这里可以赋值,但是会导致找不到DLL. 因为Caller一直是调用“ClassLibraryForReadingInfo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null” 而此时DLL为"ClassLibraryForReadingInfo, Version=1.0.0.0, Culture=en, PublicKeyToken=null"
提示找不到Assembly,不知道为什么是这样??
[assembly: AssemblyCulture("")]
//配置文件,不知道有什么用???
[assembly: AssemblyConfiguration("")]
// 公司,属性中不可见
[assembly: AssemblyCompany("")]
// 产品信息
[assembly: AssemblyProduct("not for commerce")]
// 版权,属性中不可见
[assembly: AssemblyCopyright("Copyright © 2009")]
// 商标,属性中不可见
[assembly: AssemblyTrademark("")]
//程序集是否对COM可见
[assembly: ComVisible(false)]
用程序获取Assembly信息
== 根据Type得到Assembly的信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace Test1
{
class AccessAssembly
{
static void Main()
{
//Change "ClassLibraryForReadingInfo.Class1" to any Class.
AssemblyInfo<ClassLibraryForReadingInfo.Class1> infoClass = new AssemblyInfo<ClassLibraryForReadingInfo.Class1>();
Console.WriteLine("AssemblyFullName : {0}", infoClass.AssemblyFullName);
Console.WriteLine("AssemblyName : {0}", infoClass.AssemblyName);
Console.WriteLine("CodeBase : {0}", infoClass.CodeBase);
Console.WriteLine("Company : {0}", infoClass.Company);
Console.WriteLine("Copyright : {0}", infoClass.Copyright);
Console.WriteLine("Description : {0}", infoClass.Description);
Console.WriteLine("Product : {0}", infoClass.Product);
Console.WriteLine("Title : {0}", infoClass.Title);
Console.WriteLine("Version : {0}", infoClass.Version);
Console.WriteLine("Configration : {0}", infoClass.Configration);
Console.WriteLine("TradeMark : {0}", infoClass.TradeMark);
Console.WriteLine("Culture : {0}", infoClass.Culture);
Console.Read();
}
}
public class AssemblyInfo<T>
{
private Type myType;
public AssemblyInfo()
{
myType = typeof(T);
}
public String AssemblyName
{
get
{
return myType.Assembly.GetName().Name.ToString();
}
}
public String AssemblyFullName
{
get
{
return myType.Assembly.GetName().FullName.ToString();
}
}
public String CodeBase
{
get
{
return myType.Assembly.CodeBase;
}
}
public String Version
{
get
{
return myType.Assembly.GetName().Version.ToString();
}
}
public String Copyright
{
get
{
Type att = typeof(AssemblyCopyrightAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyCopyrightAttribute copyattr = (AssemblyCopyrightAttribute)r[0];
return copyattr.Copyright;
}
}
public String Company
{
get
{
Type att = typeof(AssemblyCompanyAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyCompanyAttribute compattr = (AssemblyCompanyAttribute)r[0];
return compattr.Company;
}
}
public String Configration
{
get
{
Type att = typeof(AssemblyConfigurationAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyConfigurationAttribute configattr = (AssemblyConfigurationAttribute)r[0];
return configattr.Configuration;
}
}
public string TradeMark
{
get
{
Type att = typeof(AssemblyTrademarkAttribute);
object[] r= myType.Assembly.GetCustomAttributes(att, false);
AssemblyTrademarkAttribute aa = (AssemblyTrademarkAttribute)r[0];
return aa.Trademark;
}
}
public string Culture
{
get
{
Type att = typeof(AssemblyCultureAttribute);
object[] a = myType.Assembly.GetCustomAttributes(att, false);
if (a.Length > 0)
{
AssemblyCultureAttribute aa = (AssemblyCultureAttribute)a[0];
return aa.Culture;
}
else
{
return "No value";
}
}
}
public String Description
{
get
{
Type att = typeof(AssemblyDescriptionAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyDescriptionAttribute descattr = (AssemblyDescriptionAttribute)r[0];
return descattr.Description;
}
}
public String Product
{
get
{
Type att = typeof(AssemblyProductAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyProductAttribute prodattr = (AssemblyProductAttribute)r[0];
return prodattr.Product;
}
}
public String Title
{
get
{
Type att = typeof(AssemblyTitleAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyTitleAttribute titleattr = (AssemblyTitleAttribute)r[0];
return titleattr.Title;
}
}
}
}
转自:http://blog.sina.com.cn/s/blog_61c4c1f60100eira.html