msdn 文档说将命名空间导入添加到 CodeNamespace.Imports 集合。这会将它们放在名称空间中(这是有道理的,因为您将它们添加到名称空间中)
namespace Foo
{
using Bar;
//Code
}
然而,我们的代码库的其余部分在命名空间之外有 using 语句:
using Bar;
namespace Foo
{
//Code
}
有没有一种干净的方法可以让 CodeDom 发出第二个版本?
编辑:生成第一个示例的代码如下所示:
CodeNamespace ns = new CodeNamespace("Foo");
ns.Imports.Add(new CodenamespaceImport("Bar"));
CodeCompileUnit cu = new CodeCompileUnit();
cu.Namespaces.Add(ns);
new CSharpCodeProvider().GenerateCodeFromCompileUnit(cu, Console.Out, null);