Click here to Skip to main content
15,884,472 members
Articles / Programming Languages / C#

Reflection in .NET

Rate me:
Please Sign up or sign in to vote.
4.80/5 (147 votes)
9 Feb 2010CPOL12 min read 482.8K   5.3K   289  
.NET Framework’s Reflection API allows you to fetch type (assembly) information at runtime.
using System;
using System.Reflection;

namespace Reflection
{
    class AssemblyDemo
    {
        static void Main()
        {
            Assembly objAssembly;
            // You must supply a valid fully qualified assembly name here.            
            objAssembly = Assembly.Load("mscorlib,2.0.0.0,Neutral,b77a5c561934e089");
            // Loads an assembly using its file name   
            //SampleAssembly = Assembly.LoadFrom(@"C:\Windows\Microsoft.NET\Framework\v1.1.4322\caspol.exe");

            //this loads currnly running process assembly
            //SampleAssembly = Assembly.GetExecutingAssembly();

            Type[] Types = objAssembly.GetTypes();
            // Display all the types contained in the specified assembly.
            foreach (Type objType in Types)
            {
                Console.WriteLine(objType.Name.ToString());
            }

            //fetching custom attributes within an assembly
            Attribute[] arrayAttributes =
             Attribute.GetCustomAttributes(objAssembly);
            // assembly1 is an Assembly object

            foreach (Attribute attrib in arrayAttributes)
            {
                Console.WriteLine(attrib.TypeId);
            }

            Console.ReadLine();
        }      
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Comments and Discussions