Reflection C#

using System;
using System.Reflection;
using System.Reflection.Emit;
class Example
{
   public static void Main()
   {
      AssemblyName assemName = new AssemblyName();
      assemName.Name = "EmittedAssembly";
      AssemblyBuilder myAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.Save);
      Type attributeType = typeof(AssemblyFileVersionAttribute);
      Type[] ctorParameters = { typeof(string) };
      ConstructorInfo ctor = attributeType.GetConstructor(ctorParameters);
      object[] ctorArgs = { "1.1.1111.0" };
      CustomAttributeBuilder attribute = new CustomAttributeBuilder(ctor, ctorArgs);
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyTitleAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      ctorArgs = new object[] { "Title" };
      attribute = new CustomAttributeBuilder(ctor, ctorArgs);
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyCopyrightAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      ctorArgs = new object[] { "Copyright 2010-2011" };
      attribute = new CustomAttributeBuilder(ctor, ctorArgs);
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyDescriptionAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      attribute = new CustomAttributeBuilder(ctor, new object[] { "a comment." });
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyCompanyAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      attribute = new CustomAttributeBuilder(ctor, new object[] { "My Example Company" });
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyProductAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      attribute = new CustomAttributeBuilder(ctor, new object[] { "My Product Name" });
      myAssembly.SetCustomAttribute(attribute);
      ModuleBuilder myModule = myAssembly.DefineDynamicModule(assemName.Name, assemName.Name + ".exe");
      myAssembly.DefineVersionInfoResource();
      myAssembly.Save(assemName.Name + ".exe");
   }
}