代码之家  ›  专栏  ›  技术社区  ›  Binary Worrier

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

  •  9
  • Binary Worrier  · 技术社区  · 15 年前

    很抱歉,如果我遗漏了一些明显的内容,但是当我使用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 回复  |  直到 15 年前
        1
  •  13
  •   Aliostad    15 年前

    在定义类型的位置定义它:

    moduleBuilder.DefineType("MyNamespace.MyTestInterface",
                   TypeAttributes.Public | TypeAttributes.Interface,
                    typeof(object));
    
        2
  •  0
  •   Botz3000 Amir Sheng    15 年前

    把它放在“短”字的前面。 "Namespace.Subnamespace.Type"