About AssemblyINfo.cs Access

本文介绍如何使用.NET框架从程序集文件中提取产品名称、版本、版权等信息。通过反射技术,开发者可以轻松获取应用程序的详细配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Introduction

We have very good features in .Net based on the application version and customizations. Basically .Net provide unique assembly file for the common setting within the projects. And we can play with that file within code as well.

How I can say that?

The .Net provides few attributes based on the assembly manipulations. Suppose we want to know the current version of the product, then we want to access assembly file and get answer from that file. To achieve the product version attribute in the assembly file, we must use the AssemblyVersionAttribute attribute. And lot's of customization attribute exist in the .Net class library based on the assembly file.

List of commonly using attributes.

  1. AssemblyTitleAttribute
  2. AssemblyCompanyAttribute
  3. AssemblyVersionAttribute
  4. AssemblyProductAttribute
  5. AssemblyCopyrightAttribute
  6. AssemblyDescriptionAttribute

This article provides simple class with commonly using attribute, and gets information from the assembly about the product.

Let's see the class.

 

 

 

 

Let us see how to get product description from the assembly file

 

 

We want to get all custom attribute from the assembly file based on the AssemblyDescriptionAttribute.

object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);

After this, access the first attribute in the collections, and get the value from that

 

 

Conclusion

The .Net provides a good customization based on the assembly file. So please try to access all other attributes in the assembly file and enjoy.

 

 

productDescription = ((AssemblyDescriptionAttribute)customAttributes[0]).Description;

 

public static string ProductDescription

{

    get

    {

        //get the entry assebly file for the product

        Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

        if (assembly != null)

        {

            //now get the customattribute for the AssemblyDescriptionAttribute

            object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);

            if ((customAttributes != null) && (customAttributes.Length > 0))

            {

                productDescription = ((AssemblyDescriptionAttribute)customAttributes[0]).Description;

            }

            if (string.IsNullOrEmpty(productDescription))

            {

                productDescription = string.Empty;

            }

        }

        return productDescription;

    }

 

 

 

}

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Reflection;

 

namespace AccessAssembly

{

    public class ApplicationDetails

    {

        static string companyName = string.Empty;

        /// Get the name of the system provider name from the assembly ///

        public static string CompanyName

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        companyName = ((AssemblyCompanyAttribute)customAttributes[0]).Company;

                    }

                    if (string.IsNullOrEmpty(companyName))

                    {

                        companyName = string.Empty;

                    }

                }

                return companyName;

            }

        }

        static string productVersion = string.Empty; ///

        /// Get System version from the assembly ///

        public static string ProductVersion

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyVersionAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        productVersion = ((AssemblyVersionAttribute)customAttributes[0]).Version;

                    }

                    if (string.IsNullOrEmpty(productVersion))

                    {

                        productVersion = string.Empty;

                    }

                }

                return productVersion;

            }

        }

 

 如果取不出来productVersion,可以用下边方法。

**********************************************************

 How to get assembly version

 Assembly assembly = Assembly.GetExecutingAssembly();

/// 访问 Assembly.GetName().Version  将出错。

String version = assembly.FullName.Split(',')[1];

String fullversion = version.Split('=')[1];

If you are interested, you can also retrieve the Date and Time of the last build of your Silverlight application. Provided you define your Assembly Version like this: [assembly: AssemblyVersion("1.0.*")]

int build = int.Parse(fullversion.Split('.')[2]);

 

int revision = int.Parse(fullversion.Split('.')[3]);

 

DateTime buildDate = new DateTime(2000, 1, 1).AddDays(build).AddSeconds(revision * 2);

DateTime buildDate = new DateTime(2000, 1, 1).AddDays(build).AddSeconds(revision * 2);

 

String fulldate = buildDate.ToLocalTime().ToString(CultureInfo.InvariantCulture);

 

 

 

 **********************************************************************************

 

 

 

        static string productName = string.Empty; ///

        /// Get the name of the System from the assembly ///

        public static string ProductName

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        productName = ((AssemblyProductAttribute)customAttributes[0]).Product;

                    }

                    if (string.IsNullOrEmpty(productName))

                    {

                        productName = string.Empty;

                    }

                }

                return productName;

            }

        }

        static string copyRightsDetail = string.Empty; ///

        /// Get the copyRights details from the assembly ///

        public static string CopyRightsDetail

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        copyRightsDetail = ((AssemblyCopyrightAttribute)customAttributes[0]).Copyright;

                    }

                    if (string.IsNullOrEmpty(copyRightsDetail))

                    {

                        copyRightsDetail = string.Empty;

                    }

                }

                return copyRightsDetail;

            }

        }

        static string productTitle = string.Empty; ///

        /// Get the Product tile from the assembly ///

        public static string ProductTitle

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        productTitle = ((AssemblyTitleAttribute)customAttributes[0]).Title;

                    }

                    if (string.IsNullOrEmpty(productTitle))

                    {

                        productTitle = string.Empty;

                    }

                }

                return productTitle;

            }

        }

        static string productDescription = string.Empty; ///

        /// Get the description of the product from the assembly ///

        public static string ProductDescription

        {

            get

            {

                Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

                if (assembly != null)

                {

                    object[] customAttributes = assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);

                    if ((customAttributes != null) && (customAttributes.Length > 0))

                    {

                        productDescription = ((AssemblyDescriptionAttribute)customAttributes[0]).Description;

                    }

                    if (string.IsNullOrEmpty(productDescription))

                    {

                        productDescription = string.Empty;

                    }

                }

                return productDescription;

            }

        }

    }

 

 

 

}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值