zoukankan      html  css  js  c++  java
  • AssemblyInfo文件

    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

    博客园大道至简

    http://www.cnblogs.com/jams742003/

    转载请注明:博客园

  • 相关阅读:
    Leetcode题目62.不同路径(动态规划-中等)
    Leetcode题目56.合并区间(中等)
    Leetcode题目55.跳跃游戏(贪心算法-中等)
    Leetcode题目53.最大子序和(动态规划-简单)
    Leetcode题目49.字母异位词分组(中等)
    Leetcode题目48.旋转图像(中等)
    Leetcode题目46.全排列(回溯+深度优先遍历+状态重置-中等)
    Leetcode题目39.组合总和(回溯+剪枝-中等)
    Android学习笔记-Universal-Image-Loade图片加载框架
    Android学习笔记--使用Apache HttpClient实现网络下载效果,附带进度条显示
  • 原文地址:https://www.cnblogs.com/jams742003/p/1567148.html
Copyright © 2011-2022 走看看