C# 窗口项目中文件架构分析(一)
来源:互联网 发布:java 新浪短网址 编辑:程序博客网 时间:2024/05/18 17:43
今天重温C#,认认真真的研究了一下项目里面的各种文件,终于大体摸清了他们到底是干什么用的了,嘿嘿,以前光低着头做,可是没好好研究研究微软的项目习惯。
AssemblyInfo.cs文件:包含程序版本、信息、版权的属性文件
先介绍AssemblyInfo.cs文件中的程序集属性
内容:
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
其意义如下:
1. [assembly: AssemblyTitle("")]
[assembly: AssemblyTitle("")]代码中”:”好前面的assembly表示此属性在程序集范围内发生作用。
类型名:System.Reflection.AssemblyTitleAttribute
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyTitleAttribute : Attribute
此属性描述程序集的名称,如:某某公司某某项目某某模块等,此名称可以是任何合法的字符串,可以有空格。
2. [assembly: AssemblyDescription("")]
类型名:
System.Reflection.AssemblyDescriptionAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyDescriptionAttribute : Attribute
功能:
程序集的简单描述,如功能、语言等
3. [assembly: AssemblyDescription("")]
类型名:
System.Reflection.AssemblyDescriptionAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyDescriptionAttribute : Attribute
功能:
程序集的简单说明,描述程序集的功能、特性、约束等
4. [assembly: AssemblyConfiguration("")]
类型名:
System.Reflection.AssemblyConfigurationAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyConfigurationAttribute : Attribute
功能:
程序集的配置信息,如:零售、发布、调试等,.NET运行时没有使用此属性
5. [assembly: AssemblyCompany("")]
类型名:
System.Reflection.AssemblyCompanyAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyCompanyAttribute : Attribute
功能:
程序集所属的公司名称
6. [assembly: AssemblyProduct("")]
类型名:
System.Reflection.AssemblyProductAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyProductAttribute : Attribute
功能:
程序集所述的产品名
7. [assembly: AssemblyCopyright("")]
类型名:
System.Reflection.AssemblyCopyrightAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyCopyrightAttribute : Attribute
功能:
程序集的版权信息
8. [assembly: AssemblyTrademark("")]
类型名:
System.Reflection.AssemblyTrademarkAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyTrademarkAttribute : Attribute
功能:
程序集的商标信息
9. [assembly: AssemblyCulture("")]
类型名:
System.Reflection.AssemblyCultureAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyCultureAttribute : Attribute
功能:
枚举的字段表明程序集支持的区域性。程序集也可以指定区域独立性,表明它包含用于默认区域性的资源。运行库将任何区域性属性未设为空的程序集按附属程序集处理。此类程序集受附属程序集绑定规则约束。详细信息,请参见运行库如何定位程序集。
10. [assembly: AssemblyVersion("")]
类型名:
System.Reflection.AssemblyVersionAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyVersionAttribute : Attribute
功能:
程序集版本信息,按照4段式保存版本信息,即:主.次要.内部版本.修改版本。在强名称程序集中CLR使用此值来绑定操作。可以使用通配符*来替代内部版本和修改版本,VS将自动为其生成版本号。如定义为“1.0.*”,则VS会自动生成后面的部分。如果设定为*,则每次修改程序后版本号都会自动发生变更。
11. [assembly: AssemblyDelaySign(false)]
类型名:
System.Reflection.AssemblyDelaySignAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyDelaySignAttribute : Attribute
功能:
是否使用延迟签名
12. [assembly: AssemblyKeyFile("")]
类型名:
System.Reflection.AssemblyKeyFileAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyKeyFileAttribute : Attribute
功能:
包含了公钥(如果使用延迟签名)或者既包含公钥也包含私钥的文件名。此公钥和私钥将作为参数传递至此属性的构造函数。文件名称与输出文件路径(.exe 或 .dll)相关,与源文件路径无关。
13. [assembly: AssemblyKeyName("")]
类型名:
System.Reflection.AssemblyKeyNameAttribute
Attribute声明:
[AttributeUsage(AttributeTargets.Assembly)]
public sealed class AssemblyKeyNameAttribute : Attribute
功能:
表明包含密钥对(作为参数传递至此属性的构造函数)的密钥容器。
那么怎么读取这些文件信息呢?
可以采用以下方法:
object[] att = assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
string title = ((AssemblyDescriptionAttribute)att[0]).Description;
System.Windows.Forms.MessageBox.Show(title.ToString());
其中,可以通过改变typeof中的参数访问不同的属性,注意要将att的类型进行对应的类型转换。
- C# 窗口项目中文件架构分析(一)
- C# 窗口项目中文件架构分析(一)
- C# 窗口项目中文件架构分析(二)
- 关于C#中文件类的应用(一)
- C# 之 FTP服务器中文件上传与下载(一)
- C#中文件操作
- c#中文件操作
- Rational Robot中文件操作(一)
- c#中文件的问题
- C#中文件相关操作
- C# 中文件的操作
- C#中文件扩展名获取
- C#中文件操作整理
- LWUIT架构分析(一)
- spserver 架构分析(一)
- .NET项目中文件后缀名
- IOS读取项目中文件
- 浅析c#中文件操作(来自IT技术赛迪网)
- asp.net 读Excel文件
- .net里面“using”关键字和“添加引用”按钮的区别
- RSL编译方式的FLEX站点出现#2046错误
- C# 窗口项目中文件架构分析(一)
- streams.h和streams.lib 问题+DirectShow SDK问题
- C# 窗口项目中文件架构分析(一)
- SE,SA和R&D都代表什么
- SSIS 中的文件系统任务 (File System Task)
- C# 窗口项目中文件架构分析(二)
- ubuntu 命令
- 安装EBS R12时出现libclntsh.so.10.1: cannot open shared object file: No such file or directory的几个解决办法
- ExcelTip.Net -- Excel 技巧
- 今天终于把新浪博客中的文章转过来了~~~
- Erlide:使用Eclipse做Erlang的IDE