Reflection C#

using System;
using System.Reflection;
using System.Reflection.Emit;
class Example
{
   public static void Main()
   {
      AssemblyName assemName = new AssemblyName();
      assemName.Name = "MyAssembly";
      AssemblyBuilder myAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.Save);
      Type attributeType = typeof(AssemblyFileVersionAttribute);
      Type[] ctorParameters = { typeof(string) };
      ConstructorInfo ctor = attributeType.GetConstructor(ctorParameters);
      object[] ctorArgs = { "1.0.1111.0" };
      CustomAttributeBuilder attribute = new CustomAttributeBuilder(ctor, ctorArgs);
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyTitleAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      ctorArgs = new object[] { "The Application Title" };
      attribute = new CustomAttributeBuilder(ctor, ctorArgs);
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyCopyrightAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      ctorArgs = new object[] { "Copyright 2005-2010" };
      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[] { "Example" });
      myAssembly.SetCustomAttribute(attribute);
      attributeType = typeof(AssemblyProductAttribute);
      ctor = attributeType.GetConstructor(ctorParameters);
      attribute = new CustomAttributeBuilder(ctor, new object[] { "Product" });
      myAssembly.SetCustomAttribute(attribute);
      ModuleBuilder myModule = myAssembly.DefineDynamicModule(assemName.Name, assemName.Name + ".exe");
      myAssembly.DefineVersionInfoResource();
      myAssembly.Save(assemName.Name + ".exe");
   }
}