在网上找到如下代码:
(出处:http://www.cnblogs.com/ShadowK/archive/2006/11/14/560131.html)
/**//// <summary>
        /// 根据类名创建一个没有成员的类型的实例。
        /// </summary>
        /// <param name="className">将要创建的类型的实例的类名。</param>
        /// <returns>返回创建的类型的实例。</returns>
        public static Type BuildType(string className)
        {            AppDomain myDomain = Thread.GetDomain();
            AssemblyName myAsmName = new AssemblyName();
            myAsmName.Name = "MyDynamicAssembly";            //创建一个永久程序集,设置为AssemblyBuilderAccess.RunAndSave。
            AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(myAsmName,
                                                            AssemblyBuilderAccess.RunAndSave);            //创建一个永久单模程序块。
            ModuleBuilder myModBuilder =
                myAsmBuilder.DefineDynamicModule(myAsmName.Name, myAsmName.Name + ".dll");
            //创建TypeBuilder。
            TypeBuilder myTypeBuilder = myModBuilder.DefineType(className,
                                                            TypeAttributes.Public);            //创建类型。
            Type retval = myTypeBuilder.CreateType();            //保存程序集,以便可以被Ildasm.exe解析,或被测试程序引用。
            myAsmBuilder.Save(myAsmName.Name + ".dll");
            return retval;
        }
以上代码在运行时可生成一个DLL文件,将生成的DLL引用到项目中,使用正常.
但生成的类(DLL文件)没有命名空间,研究了N久,实在找不到如何给类(DLL)添加命名空间.各位大虾,谁有更好的动态生成DLL的方法或知道如何修改此段代码,可以动态为类添加命名空间,20分相送,多谢.