Click here to Skip to main content
11,641,717 members (61,526 online)
Click here to Skip to main content
Articles » Languages » C# » Reflection » Downloads
Add your own
alternative version

Dynamic Assemblies using Reflection.Emit. Part II of II - Reflection.Emit

, 6 May 2007 CPOL 41.8K 595 43
This article explains how Reflection.Emit classes can be used to dynamically generate .NET assemblies.
DynamicCodeGeneration_src.zip
DynamicCodeGeneration_src
Base
Base
bin
Debug
Properties
CodeGenerator
bin
Debug
Derived.dll
DerivedAssembly.dll
DynamicCodeGeneration.CodeGenerator.vshost.exe
Properties
Settings.settings
CustomAttributes
DynamicCodeGeneration.CustomAttributes
bin
Debug
Properties
using System;
using System.Text;
using System.Collections.Generic;

namespace DynamicCodeGeneration.CustomAttributes
{
    /// <summary>
    /// Sample assembly level attribute
    /// </summary>
    [AttributeUsage( AttributeTargets.Assembly )]
    public sealed class AssemblyLevelAttribute : Attribute
    {
        private string _authorName;
        private GenerationMode _generationMode;

        /// <summary>
        /// The name of the Product that has been subscribed
        /// </summary>
        public string AuthorName
        {
            set
            {
                _authorName = value;
            }
            get
            {
                return _authorName;
            }
        }

        /// <summary>
        /// The mode for which the plugin is designed (Server / OutlookClient or Both)
        /// </summary>
        public GenerationMode GenerationMode
        {
            set
            {
                _generationMode = value;
            }
            get
            {
                return _generationMode;
            }
        }

        #region Public

        /// <summary>
        /// Sample assembly level attribute
        /// </summary>
        /// <param name="authorName"></param>
        /// <param name="generationMode"></param>
        public AssemblyLevelAttribute(string authorName, GenerationMode generationMode)
        {
            this.AuthorName = authorName;
            this.GenerationMode = generationMode;
        }

        #endregion
    }
}

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)

Share

About the Author

Piyush S Bhatnagar
Web Developer
United States United States
I work with Proteans Software Solutions. Interests include software architecture, design patterns, agile, scrum development, automated acceptance testing, books, music, travel, movies...

You may also be interested in...

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150731.1 | Last Updated 6 May 2007
Article Copyright 2007 by Piyush S Bhatnagar
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid