पृष्ठभूमि:टी 4 टेक्स्ट टेम्पलेट - क्या होस्ट से संकलन प्रतीक प्राप्त करना संभव है?
मैं एक खुला स्रोत खेल सी # में लिखा पुस्तकालय जो अत्यधिक प्रदर्शन के लिए समायोजित किया गया है, मैं हाल ही में विंडोज फोन के लिए पुस्तकालय पोर्ट किया है असुरक्षित कोड, सूचक अंकगणित आदि का उपयोग कर सकते है। दुर्भाग्य से विंडोज फोन पर सभी असुरक्षित कोड का समर्थन नहीं करता, तो मैं कूड़े को इस जैसे पूर्वप्रक्रमक निर्देशों के साथ अपने स्रोत कोड पड़ा है: इन निर्देशों codebase काफी अपठनीय और करने के लिए मुश्किल हो गया है की राशि के कारण
#if WINDOWS || XBOX
public unsafe struct Foo
#elif WINDOWS_PHONE
public struct Foo
#endif
बनाए रखें, इसलिए मैं अन्य विकल्पों की खोज कर रहा हूं - जिनमें से एक टी 4 का उपयोग कर टेक्स्ट टेम्पलेट्स है।
प्रश्न:
क्या मैं बहुत दूर जा रहा नीचे टी -4 मार्ग मौसम से पहले पता करने की जरूरत है या नहीं यह एक पाठ टेम्पलेट के भीतर से संकलन प्रतीकों पाने के लिए संभव है? मैंने टेम्पलेट पैरामीटर में देखा है लेकिन बाहरी दुनिया से उन्हें संशोधित करना बहुत आसान प्रतीत नहीं होता है। आदर्श रूप में मैं क्या देखना चाहते हैं कुछ है इस तरह एक सा: किसी को भी मौसम पर कुछ प्रकाश डाला सकता है या नहीं यह संभव है
<# if (Host.CompilationSymbols.Contains("WINDOWS_PHONE") { #>
public struct Foo
<# { #>
अगर मैं आभारी होगी!
उत्सुक - मानते हुए कि आप टी 4 का उपयोग करके असुरक्षित घोषणा विशेषता को हटाते हैं, तो आप वास्तविक असुरक्षित कोड के साथ क्या करते हैं? – tgiphil
स्पष्ट रूप से यह * केवल * जगह नहीं है जहां टेम्पलेट चीजों को बदल देगा - अन्य उदाहरण फू बार बार में बार/बार परिवर्तन होंगे, या बार-> foo() bar.foo() – MattDavey