Access Assembly file and get product informations

No.of Views1836
Bookmarked0 times
Downloads 
Votes0
By  RRaveen   On  15 Feb 2010 22:02:46
Tag : CSharp , Miscellaneous
Access Assembly file and get product informations
emailbookmarkadd commentsprint

Images in this article missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at info@codegain.com

 



Hi Guys
We have good features in the .net based on the application version and customizations. Basically dot 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 dot net give few attributes based on the assembly manipulations. Let say we want to know the current version of the Product, so we want to access assembly file and get answer from that file. Since when we try access that product version attribute in the assembly file, we must use the AssemblyVersionAttribute attribute.
And lot

1. AssemblyTitleAttribute

2. AssemblyCompanyAttribute

3. AssemblyVersionAttribute

4. AssemblyProductAttribute

5. AssemblyCopyrightAttribute

6. AssemblyDescriptionAttribute

Now see, somebody can know how use those attribute with our coding .somebody may be can’t know. This article provides simple class with commonly using attribute, and gets information from the assembly about the product.

Let’s see the class.


{codecitation class="brush:csharp; gutter: true;" width="650px"}

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;
}
}
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;
}
}
}
}

Let see simple explanation get product description from the assembly file

public static string ProductDescription

{
get
{
//get the entry assebly file for the product
Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();
if (assembly != null)
{
//new 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;
}
}

{/codecitation}


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


{codecitation class="brush:csharp; gutter: true;" width="650px"}


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


{/codecitation}


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


{codecitation class="brush:csharp; gutter: true;" width="650px"}

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

{/codecitation}

That’s it. and enjoy

Conclusion

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

Thank you

 
Sign Up to vote for this article
 
About Author
 
RRaveen
Occupation-Software Engineer
Company-TGS
Member Type-Gold
Location-Singapore
Joined date-03 Jun 2009
Home Page-codegain.com
Blog Page-www.codegain.com
- B.Sc. degree in Computer Science. - 4+ years experience in Visual C#.net and VB.net - Obsessed in OOP style design and programming. - Designing and developing Network security tools. - Designing and developing a client/server application for sharing files among users in a way other than FTP protocol. - Designing and implementing GSM gateway applications and bulk messaging. - Windows Mobile and Symbian Programming - Having knowledge with ERP solutions
 
 
Other popularSectionarticles
Comments
By:you = idietDate Of Posted:2/9/2011 7:49:46 AM
U are an idiet
Brackets ?! WTF http://piv.pivpiv.dk/
Leave a Reply
Title:
Display Name:
Email:
(not display in page for the security purphase)
Website:
Message:
Please refresh your screen using Ctrl+F5
If you can't read this number refresh your screen
Please input the anti-spam code that you can read in the image.
^ Scroll to Top