2010-05-04 31 views
15

'dan önce ifadeleri kullanması için bir yol var mı? Msdn belgeleri CodeNamespace.Imports koleksiyonuna ad alanları içe aktarma ekler. Bu bizim kod tabanı geri kalanı isim alanı dışından ifadelerini kullanarak etmiştir AncakCodeDom'un ad alanı

namespace Foo 
{ 
    using Bar; 

    //Code 
} 

(sizin ad ekleyerek beri, mantıklı) isim alanı içinde koyar:

using Bar; 

namespace Foo 
{ 
    //Code 
} 

mı orada CodeDom ikinci sürümü yaymak için temiz yol?

Düzenleme: ilk örneği üretmek için kod şöyle görünür:

basit yolu gerçekleşerek ithalatı (isimsiz ad) Derleme Birimi içine genel ad giriş eklemek ve eklemektir
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); 

cevap

22

o.

+2

Evet. bu işe yarıyor. Yay necro cevapları! –

+0

teşekkür ederim; Bunu merak ediyordum ... Frankenanswer için bir kalp krizi +1 ve ayrıca nekro cevabını öven spoooooky necrocomment için +1. :) ve + ♥♥ çünkü ürkütücü necro şeyler ve Frankenthings için doğru zaman. ;) – shelleybutterfly

6

Yani kod önce ama bu biraz ilave ile aynı olacaktır.

CodeNamespace globalNamespace = new CodeNamespace(); 
globalNamespace.Imports.Add(new CodeNamespaceImport("Foo")); 

// globalNamespace.Comments = string.Empty; you cannot do this 
ccu.Namespaces.Add(globalNamespace); 
ccu.Namespaces.Add(ns); 
+0

sorun şu anda başlangıçta otomatik olarak oluşturulan bir yorum bloğum var – Brian