2010-03-29 9 views
12

क्या कोई साधारण सी # कोड जनरेटर की सिफारिश कर सकता है। मैं बस की तरह के तरीकों के साथ कुछ के लिए देख:सी # कोड जनरेटर

GenClass = CreateNewClass(AccessModifier,Name......) 

GenClass.Add(new Method(AccessModifier,RetType,Name....){[email protected]"....."} 

GenClass.Add(new Property(AccessModifier,Type, Name....) 

........... आदि

और सभी वर्गों \ तरीके और अन्य सदस्यों हम फोन कोड पीढ़ी समारोह बनाने के बाद (जहां हम कुछ पैरामीटर विशिष्ट कर सकते हैं)

क्या ऐसे ओपनसोर्स कोड जेनरेटर हैं?

+0

यह कुछ हाल ही में लिखा है और यह nuget में भी है पर एक नज़र डालें। । । । । । । । । यह खुला स्रोत है और गीथब पर पाया जा सकता है: https://github.com/borisdj/CsCodeGenerator – borisdj

उत्तर

12
+0

कोडडॉम बहुत भारी और अध्ययन करना मुश्किल है।मैं कुछ और आसान और हल्का दिख रहा हूं – Neir0

+3

@ नीर 0: यह जितना आसान हो उतना आसान है, अगर आप इसे एक बहुत मुश्किल कहते हैं तो मैं उस चीज़ के बारे में परेशान हूं। –

+2

यदि आप थोड़ा हल्का वाक्यविन्यास चाहते हैं कि आपका प्रश्न आगे बढ़ता है, तो मैं कच्चे CodeDOM के शीर्ष पर कुछ बहुत ही सरल विस्तार विधियों को लिखने का सुझाव दूंगा। इस तकनीक का उपयोग करके एक अच्छा धाराप्रवाह एपीआई बनाना बहुत आसान है। – GarethJ

0

यदि आप सी # कोड युक्त कुछ आर्बिट्रे स्ट्रिंग दिए गए वर्ग को उत्पन्न करने में सक्षम होना चाहते हैं, तो आपको एक सी # कंपाइलर चाहिए। फिलहाल .NET ढांचा एक कंपाइलर के साथ नहीं भेजता है जिसे आप सी # के स्निपेट पास कर सकते हैं और संकलित कोड वापस प्राप्त कर सकते हैं। यदि आपके पास अधिक विशिष्ट ज़रूरत है, तो आपको यह निर्दिष्ट करना चाहिए कि आप क्या करना चाहते हैं।

+0

@Gabe: ढांचे के भीतर कोई कंपाइलर क्यों नहीं है? एक नज़र डालें: http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx – Oliver

+0

मैं उपकरण लिख रहा हूं जो मुझे हर दिन के कार्यों को स्वचालित बनाने में मदद करता है। – Neir0

+0

@ ओलिवर मुझे लगता है कि संकलक ढांचे का हिस्सा नहीं है। उदाहरण के लिए यह मोनो में सी # कंपाइलर के बजाय बाहरी प्रोग्राम (csc.exe) है। – Neir0

6

T4 or Text Template Transformation Toolkit चेक में देख लायक हो सकता है।

एक और विकल्प अपने स्वयं के साधारण जेनरेटर बनाना है, जिसमें कोडडॉम की तुलना में आपकी स्थिति के लिए कार्यक्षमता अधिक अनुकूल है। हाल ही में कोड जनरेशन प्रोजेक्ट में मैंने जो किया है, हालांकि मैंने कोड पीढ़ी को बाद में संहिता में परिवर्तित करने के लिए कोड जनरेशन को समाहित किया है।

6

आप csscript देख सकते हैं जो CodeDOM पर निर्भर करता है।

var PrintSum = CSScript.LoadMethod(
     @"public static void PrintSum(int a, int b) 
      { 
       Console.WriteLine((a+b)); 
      }") 
      .GetStaticMethod(); 
PrintSum(1, 2); 

दस्तावेज़ पढ़ लें, यह बहुत विस्तृत है और तुम तुम क्या मैं बस से पहले की नकल की तुलना में बहुत अधिक कर सकते हैं मिल जाएगा:

यह आप की तरह बातें लिखने के लिए अनुमति देता है।

+1

धन्यवाद। लेकिन यह उपकरण कोड उत्पन्न करने में मदद नहीं करता है – Neir0

0

चूंकि आप स्पष्ट रूप से एक ओपनसोर्स कोड जेनरेटर खोज रहे हैं, तो मैं MyGeneration का सुझाव देता हूं। एक अन्य, टेम्पलेट आधारित दृष्टिकोण (जो आप नहीं चाहते हैं "टेम्पलेट के बजाय" GenClass.Add .... "वाक्यविन्यास चाहते हैं) Codesmith Tools यह वास्तव में शक्तिशाली लेकिन बंद स्रोत होगा। https://www.nuget.org/packages/CsCodeGenerator/:

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