如何为通过Reflection.Emit创建的类型指定名称空间?

时间:2010-11-18 12:17:51

标签: .net reflection namespaces reflection.emit

道歉,如果我遗漏了一些明显的东西,但当我用Reflection.Emit创建一个新类型时,如何指定它应该在哪个命名空间?

即..

AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "TestDynamic";

AssemblyBuilder assemblyBuilder = 
    AppDomain.CurrentDomain.DefineDynamicAssembly(
        assemblyName,   
        AssemblyBuilderAccess.Save);

ModuleBuilder moduleBuilder =    
    AssemblyBuilder.DefineDynamicModule("TestDynamic", "TestDynamic.dll");

TypeBuilder myTestInterface =
    moduleBuilder.DefineType("MyTestInterface", 
    TypeAttributes.Public | TypeAttributes.Interface, typeof(object));

如何为myTestInterface提供命名空间?

2 个答案:

答案 0 :(得分:13)

定义类型的位置:

moduleBuilder.DefineType("MyNamespace.MyTestInterface",
               TypeAttributes.Public | TypeAttributes.Interface,
                typeof(object));

答案 1 :(得分:0)

将它放在“短”类型名称之前。 "Namespace.Subnamespace.Type"