zoukankan      html  css  js  c++  java
  • Reading Assembly attributes in VB.NET

    Abstract

    This article allows you to read the assembly attributes information using .NET. The information store in AssemblyInfo files like Title, Description, copyright, Trade mark can be read using reflection and assembly namespace.

    Topic

    The assembly attribute is used by manifest to provide information about the assembly. In this article we will see who to read Informational Attributes from AssemblyInfo file. In AssemblyInfo file Informational Attributes contains the information about product Name, description, Trademark, copyright. In general this information's are either hardcode or store in database or flat file. .NET assembly provides to store this information in AssemblyInfo file and after compilation it becomes the part of assembly. So at run time one can read this information.

    Part of Assembly Information

    Sr. no. Attribute Description
    1 AssemblyTitle Title name from the assembly.
    2 AssemblyDescription  It provides the detail description from the assembly.
    3 AssemblyCompany  It Provides the company information from the assembly.
    4 AssemblyProduct It provides the production information from the assembly. 
    5 AssemblyCopyright It Provides the copyright from the assembly.
    6 AssemblyTrademark It Provides the trademark from the assembly.

    Each of these attributes has a defined class, which is used to read the information from the AssemblyInfo file.

    Follow the Steps below to read the AssemblyInfo File.

    Step 1

    Create VB Windows Application and change the project name to AssemblyInfo.

    Step 2

    Open AssemblyInfo.vb file and edit the file with the changes shown below

    <Assembly: AssemblyTitle("Attribute Information ")>
    <Assembly: AssemblyDescription("Reading the Assembly Attribute Information ")> <Assembly: AssemblyCompany("Company Name")>
    <Assembly: AssemblyProduct(".NET")>
    <Assembly: AssemblyCopyright("Copyright VB.NET All Rights Reserved")>
    <
    Assembly: AssemblyTrademark("Attribute Information")>

    Step 3

    Create new Class file and rename it to clsAppInfo. Imports system.reflection name space.

    Imports Namespaces
    Imports SR = System.Reflection

    Step 4

    Define one Interface called IAssemblyInfomation with following signature.

    Interface IApplicationSM
    ReadOnly Property Title() As String
    ReadOnly Property Description() As String
    ReadOnly Property Company() As String
    ReadOnly Property Product() As String
    ReadOnly Property Copyright() As String
    ReadOnly Property Trademark() As String
    End
    Interface

    Step 5

    Create Public class ClsAssInfo and implements the above define interface. Write the implementation of above properties.

    Public Class ClsAssInfo
    Implements IAssInfo
    Dim m_AssInfo As System.Reflection.Assembly
    Sub New()
    m_AssInfo = System.Reflection.Assembly.GetExecutingAssembly
    End Sub
    Public ReadOnly Property Company() As String Implements
    AssemblyInfo.IAssInfo.Company
    Get
    Dim m_Company As SR.AssemblyCompanyAttribute
    m_Company = m_AssInfo.GetCustomAttributes(GetType(SR.AssemblyCompanyAttribute), False)(0)
    Return m_Company.Company.ToString
    End Get
    End Property
    Public ReadOnly Property Copyright() As String Implements
    AssemblyInfo.IAssInfo.Copyright
    Get
    Dim m_Copyright As SR.AssemblyCopyrightAttribute
    m_Copyright = m_AssInfo.GetCustomAttributes(GetType(SR.AssemblyCopyrightAttribute), False)(0)
    Return m_Copyright.Copyright.ToCharArray
    End Get
    End Property
    Public ReadOnly Property Description() As String Implements
    AssemblyInfo.IAssInfo.Description
    Get
    Dim m_Description As SR.AssemblyDescriptionAttribute
    m_Description = m_AssInfo.GetCustomAttributes(GetType(SR.AssemblyDescriptionAttribute), False)(0)
    Return m_Description.Description.ToString
    End Get
    End Property
    Public ReadOnly Property Product() As String Implements
    AssemblyInfo.IAssInfo.Product
    Get
    Dim m_Product As SR.AssemblyProductAttribute
    m_Product = m_AssInfo.GetCustomAttributes(GetType (SR.AssemblyProductAttribute), False)(0)
    Return m_Product.Product.ToString
    End Get
    End Property
    Public ReadOnly Property Title() As String Implements AssemblyInfo.IAssInfo.Title
    Get
    Dim m_Title As SR.AssemblyTitleAttribute
    m_title = m_AssInfo.GetCustomAttributes(GetType(SR.AssemblyTitleAttribute), False)(0)
    Return m_Title.Title.ToString
    End Get
    End Property
    Public ReadOnly Property Trademark() As String Implements
    AssemblyInfo.IAssInfo.Trademark
    Get
    Dim m_Trademark As SR.AssemblyTrademarkAttribute
    m_Trademark = m_AssInfo.GetCustomAttributes(GetType(SR.AssemblyTrademarkAttribute), False)(0)
    Return m_Trademark.Trademark.ToString
    End Get
    End Property

    Step 6

    Open the Window form and instantiate clsAppInfo class and use clsAppInfo Method to read the Assembly information.

    Description of some function used here

    System.Reflection:

    The System.Reflection namespace provide information about classes and interface that gets loaded dynamically and provides information about data member, function with the ability to dynamically create and invoke types.

    GetExecutingAssembly Function:

    It loads the current assembly that is running form the code. In our case the currently assembly is AssemblyInfo

  • 相关阅读:
    天才绅士少女助手克里斯蒂娜「推柿子」
    sum「莫队」
    simple,跳楼机,[同余系最短路]
    ceoi「chase」
    jzoj5195 数的划分
    lcis
    rectangle
    w
    v·y「状压dp」
    分手是住院「期望dp」
  • 原文地址:https://www.cnblogs.com/snowball/p/865190.html
Copyright © 2011-2022 走看看