• bin。obj Properties文件夹


    Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写
    
    Bin 目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。
    
    obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。
    
    

    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
    Attribute声明:[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的类型进行对应的类型转换。

    这次讲讲 Properties 文件夹中的其他两个文件, Resources.resx 和 Settings.settings 文件,顾名思义一个是管资源的、一个是管配置的。(看,学好一门外语是多么重要啊!)

    说到这两个文件不得不先说说在项目根目录下面的 app.config 文件:

          它是标准的 XML 格式文件, Settings.settings 所设置的所有属性,都在 app.config 有所体现,也就是你可以通过配置到 app.config 文件中写入你想要的参数。当然写入 app.config 文件的方法不仅此一种。比如我们想把连接数据库的信息写入到 app.config 中,然后连接数据库时好方便的调用它 , 可以这样做:

    1、  在app.config文件中加入一下代码:

    <appSettings >

        <add key="connStr"   value ="Data Source= 数据源地址;user=****;password=*****" />

      </appSettings>

    2、  然后在程序中调用以下语句提取这条数据库连接信息:

    string connStr;

    connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString();

    此时,connStr的值为"Data Source= 数据源地址;user=****;password=*****"。我们可以应用这条数据库连接信息连接数据库。

    这样做的优点有利于我们的程序方便的连接多个不同数据库,我们可以将不同数据库的信息同时放入app.config文件根据需要随时调用。

    相比而言,上面的方法比较土,它只能存储字符串类型的参数,而Settings.settings文件是微软提供给用户的专门设置配置信息的页面,功能更为强大,应用范围更广一些,它不光能存字符串,还能存日期时间之类的对象信息。

    比如:我添加了两条用户级别的配置信息,一条是字符串类型,另一条是日期时间类型,保存完毕后,在app.config 文件中就会出现以下代码:

    <userSettings>

        <test.Properties.Settings>

          <setting name="Setting2" serializeAs ="String">

            <value>Data Source=***_####;user=@@@;password=%%%%%%</ value >

          </setting>

          <setting name="Setting3" serializeAs ="String">

            <value>2009-03-16</value>

          </setting>

    </test.Properties.Settings>

    </userSettings>

    设置起来也比较方便,点点鼠标就能搞定。

    依然以数据库连接字符串为例,读取的方法是这样的:

    connStr = test.Properties.Settings.Default.Setting2.ToString();

    可以看到这里面已经将这些信息上封装成了不同的对象用来读取。

    在来说说Resources.resx

    Resources.resx负责管理程序中非源代码性质的文件包括图片,音频,字符串,图标等文件,我们可以从MSDN上查找“ 添加和编辑资源 ”,来阅读它的使用方法,里面有详细地访问和添加资源过程,在此不做复述。

    Program.cs文件:

    整个应用程序的入口,Application.Run(new main.main());语句标记了你启动的窗口,你可以通过改变参数来设置你的启示界面。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zclzzz/archive/2010/10/08/5927081.aspx

  • 相关阅读:
    Django信号机制相关解释与示例
    花了三个月终于把所有的 Python 库全部整理了!可以说很全面了
    Django3.0 异步通信初体验(小结)
    基于docker-compose搭建本地sentry服务
    权限控制终于来了!Redis 6.0新特性——ACLs
    redis为什么是单线程而且速度快?
    Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
    Umi + Dva + Antd的React项目实践
    Windows下同时安装python2和python3如何兼容版本
    consul实现kubernetes-1.15集群master的高可用访问实现
  • 原文地址:https://www.cnblogs.com/mahaisong/p/2057755.html
Copyright © 2020-2023  润新知