C# 窗口项目中文件架构分析(一)

原创 2011年01月21日 10:38:00

今天重温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的类型进行对应的类型转换。

版权声明:本文为博主原创文章,转载也可以,但是你的注明出处,虽然我写的东西只是给我自己看的

浅谈IQKeyboardManager第三方库的使用

原文地址:http://www.jianshu.com/p/9d7d246bd350/comments/1518291 IQKeyboardManager是iOS中解决键盘弹起遮挡UITextF...
  • yuqingzhude
  • yuqingzhude
  • 2016年08月16日 14:17
  • 473

JSON及其在项目中的使用

JSON一、简介 全称:JavaScript Ojbect Notation,JavaScript对象标记 功能:轻量级数据交换语言 语法严格 两种建立JS对象的方式//方式一:通过function ...
  • Geek_Geek
  • Geek_Geek
  • 2015年12月18日 11:24
  • 1545

关于项目中读取文件的探讨

知识点来自: 1.javase中的类加载路径 2.java.io中的基本api类 前言:         最近负责一个代码生成器的项目,还要做成一个eclipse插件的形式,后期还要做成可视化的方...
  • fengchao2016
  • fengchao2016
  • 2016年09月24日 16:28
  • 464

Hadoop离线分析在实际项目中的架构

点击流日志数据挖掘概述很多网站(比如电商)都会收集用户的浏览行为,然后进行分析能够实现广告推荐等功能,可以改善网站设计,提高企业利润。数据收集预埋一些js代码,为页面上的一些标签添加绑定事件。当事件发...
  • mrbcy
  • mrbcy
  • 2017年02月15日 18:24
  • 1133

技巧-如何在android项目中将布局文件存放在不同目录中

今天来聊聊关于将Android应用程序的布局文件的存放,因为开发过程中发现有时候在同一个文件夹中存放了太多布局文件会造成很多麻烦。如果你的项目有超过30个布局,想要查找一个布局文件会让很头疼。这个问题...
  • lp8800
  • lp8800
  • 2015年11月11日 21:40
  • 1799

java 23种设计模式全解析

一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代...
  • liyingjun250
  • liyingjun250
  • 2016年08月05日 10:36
  • 175

Android中项目中各个文件夹的含义和用途详解

1.src:存放所有的*.java源程序。2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID。3.assets:可以存放项目一些较大的资源文件,例如:图片、音乐...
  • daomihuihui
  • daomihuihui
  • 2015年10月02日 17:53
  • 624

项目中的日志配置执行你懂吗?

java日志,需要知道的几件事 如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基...
  • ftx2540993425
  • ftx2540993425
  • 2016年04月26日 11:53
  • 561

如何使用开发工具C#.net来调用QC的接口

 来源 http://blog.csdn.net/didostream/article/details/4808244?locationNum=11&fps=1 本文主要介绍了,如...
  • skysword2
  • skysword2
  • 2016年11月11日 18:43
  • 479

QT 项目文件介绍

2009-09-19 11:23 1628人阅读 评论(0) 收藏 举报 qtmakefilethreadwindows正则表达式编译器 目录(?)[+] Q...
  • oMingZi12345678
  • oMingZi12345678
  • 2014年08月20日 03:09
  • 1001
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 窗口项目中文件架构分析(一)
举报原因:
原因补充:

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