msdn のドキュメントには、名前空間のインポートを CodeNamespace.Imports コレクションに追加すると書かれています。これにより、名前空間内に配置されます(名前空間に追加するので、これは理にかなっています)
namespace Foo
{
using Bar;
//Code
}
ただし、コード ベースの残りの部分には、名前空間の外に using ステートメントがあります。
using Bar;
namespace Foo
{
//Code
}
CodeDom に 2 番目のバージョンを発行させるクリーンな方法はありますか?
編集: 最初の例を生成するコードは次のようになります。
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);