2010-05-04 9 views
15

से पहले कथन का उपयोग करके कोडडॉम डालने का कोई तरीका है msdn प्रलेखन कहता है कि नामस्थान स्थान कोड नाम आयात में आयात करता है। आयात संग्रह। इससे उन्हें नाम स्थान के अंदर डालता है (जो समझ में आता है, अपने उन्हें नाम स्थान को जोड़ने के बाद से)क्या नाम कोड

namespace Foo 
{ 
    using Bar; 

    //Code 
} 

हालांकि हमारे कोड बेस के बाकी नाम स्थान के बाहर बयान का उपयोग कर दिया है:

using Bar; 

namespace Foo 
{ 
    //Code 
} 

क्या कोई दूसरे संस्करण को उत्सर्जित करने के लिए कोडडॉम प्राप्त करने का साफ तरीका?

संपादित करें: पहला उदाहरण उत्पादन करने के लिए कोड इस तरह दिखता है:

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); 

उत्तर

22

सबसे आसान तरीका करने के लिए (बिना नाम नाम स्थान) संकलित यूनिट में एक वैश्विक नाम स्थान प्रविष्टि जोड़ने और आयात को जोड़ने के लिए है यह।

+2

हाँ। यह काम करता है। हाँ नेक्रो जवाब! –

+0

धन्यवाद; मैं इस बारे में सोच रहा था ... फ्रेंकनेम के लिए एक दिल से +1, और नेक्रो जवाब की प्रशंसा करते हुए spoooooky necrocomment के लिए +1 भी। :) और + ♥♥ क्योंकि यह डरावना नेक्रो सामान और फ्रेंकेंथिंग्स के लिए सही समय है। ;) – shelleybutterfly

6

तो कोड से पहले, लेकिन इस बिट में जोड़ा साथ के रूप में ही किया जाएगा।

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

समस्या यह है कि अब मेरे पास शुरुआत में एक ऑटो जनरेटेड टिप्पणी ब्लॉक है – Brian

संबंधित मुद्दे