首頁  >  文章  >  类库下载  >  剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

高洛峰
高洛峰原創
2016-10-14 17:09:491853瀏覽

核心程式碼

                                        剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

                                            

using System.Reflection;
using System.Runtime.InteropServices;

// 有关程序集的常规信息通过下列特性集
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MusicStore")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("MusicStore")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 会使此程序集中的类型
// 对 COM 组件不可见。如果需要
// 从 COM 访问此程序集中的某个类型,请针对该类型将 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]

// 如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
[assembly: Guid("a9ef3281-9049-4a52-a2f1-2061d442200e")]

// 程序集的版本信息由下列四个值组成:
//
//      主版本
//      次版本
//      内部版本号
//      修订版本
//
// 可以指定所有值,也可以使用“修订号”和“内部版本号”的默认值,
// 方法是按如下所示使用 "*":
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

一、全域屬性

  大多數特性適用於特定的語言元素(如類別或方法),但是,有些屬性是全域它們適用於整個程序集或模組。如:AssemblyVersionAttribute 屬性可用來向程式集中嵌入版本資訊。

 

  全域特性在原始碼中出現在任何頂級 using 指令以及任何類型、模組或命名空間聲明之前。全域特性可顯示在多個原始文件,但是,在單一編譯傳遞必須編譯文件。在 C# 專案中,它們在 AssemblyInfo.cs 檔案中。

  程序集特性是提供有關程序集的資訊的值。它們分成以下類別:

    ①程序集標識特性

    ②資訊性特性

『 〜 ②資訊性特性

『 〜 ①程序特性

『 〜〜類程式特性  

  1.程式集識別特性

  三個特性(使用強名稱,如果適用) 確定程序集的識別:名稱、版本和區域性。當在程式碼中引用時,這些特性構成程式集的完整名稱需要。使用特性,可以將程式集的版本和區域性。但是,名稱值由編譯器,在 「組件資訊」對話方塊 的 Visual Studio IDE 設定,建立組件後,依照包含組件清單的檔案。 AssemblyFlagsAttribute 特性指定組件的多個副本是否可以共存。

剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

圖- 「程式集資訊」對話方塊中的名詞與 AssemblyInfo.cs+其他的公司或產品資訊。

  3.程式集清單特性

  可以使用程式集清單特性提供程式集清單中的資訊。其中包括標題、說明、預設別名和配置。 剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

4.強名稱特性(不深入)

  一般存在Visual Studio 的早期版本,若要使用強名稱的程序集執行以下程序集級別特性:剖析 AssemblyInfo.cs - 從這裡了解常用的特性 Attribute

    ①AssemblyKeyFileAttribute

    ②AssemblyKeyNameAttribute

    ③AssemblyDelaySignAttribute

這仍然支持,但是,給程序集簽名的首選方法是使用“簽名頁”。 (這裡不深入了解)

 

二、已過時的特性

   Obsolete 屬性指示某個程式實體標記為建議不再使用的一個。 每次使用對實體標記為過時根據隨後將產生警告或錯誤,配置屬性。

/// <summary>
    /// 旧类
    /// </summary>
    [Obsolete("请使用 " + nameof(NewClass))]
    class OldClass
    {
        public void Method() { }
    }

    /// <summary>
    /// 新类
    /// </summary>
    class NewClass
    {
        [Obsolete("请使用 " + nameof(NewMethod), true)]
        public void OldMethod() { }

        public void NewMethod() { }
    }
class Program
    {
        static void Main(string[] args)
        {
            var oldClass = new OldClass();  //警告

            var newClass = new NewClass();
            newClass.OldMethod();  //报错
        }
    }

 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn