मुझे लगता है कि @kvb कुछ तकनीकी कठिनाइयों का एक अच्छा अवलोकन देता है। मैं सहमत हूं प्रकार अनुमान समस्याग्रस्त हो जाएगा - आप स्थानीय रूप से अज्ञात प्रकार पर प्रदाता उत्पन्न प्रकारों का उपयोग करने के लिए सीमित होंगे। मुझे लगता है कि सी # रोज़लिन में समान कुछ के साथ आ सकता है, लेकिन मुझे संदेह है कि यह एफ # (जहां टाइप प्रदाता वास्तव में भाषा सुविधा है और न केवल टूल) के रूप में सुंदर और आसानी से एकीकृत किया जाएगा।
अपने दो प्रश्नों का उत्तर प्राप्त करने के लिए:
[मैं कैसे कर सकते हैं] का उपयोग एफ # सी # कोड में 3.0 प्रदाताओं?
एफ # प्रकार प्रदाता वास्तव में केवल एफ # कंपाइलर द्वारा समझा जाता है, इसलिए आपको उन्हें F # से उपयोग करने की आवश्यकता होगी। जनरेटिव प्रकार प्रदाता (एसक्यूएल, संस्थाएं, डब्लूएसडीएल, कॉन्फ़िगरेशन फाइल) के लिए, आप प्रदाता को एफ # से संदर्भित कर सकते हैं और सी # परियोजनाओं से जेनरेट किए गए प्रकारों का उपयोग कर सकते हैं।
प्रकार प्रदाताओं को मिटाकर आप ऐसा करने में सक्षम नहीं होंगे, क्योंकि प्रकार वास्तव में मौजूद नहीं हैं और केवल F # उन्हें देख सकते हैं। तो सबसे अच्छा विकल्प है कि अपने प्रोसेसिंग कोड को एफ # में लिखना और रिकॉर्ड्स के रिकॉर्ड्स या अन्य प्रकारों के संग्रह के रूप में वापसी करना है जिन्हें सी # से आसानी से खपत किया जाता है।
सी # कार्यान्वयन का उपयोग करने में सक्षम होने की आवश्यकता क्या होगी?
मैं निश्चित रूप से कह सकता हूं, "सी # को प्रकार प्रदाताओं का समर्थन करना होगा!", लेकिन यहां कुछ और विचार हैं। टाइप प्रदाता सिर्फ .NET असेंबली हैं और वे किसी भी F #-विशिष्ट प्रकार का उपयोग नहीं करते हैं। ITypeProvider
interface किसी भी .NET भाषा द्वारा सी # सहित उपभोग किया जा सकता है, इसलिए यदि सी # डिजाइनर चाहते थे, तो वे पहले से ही F # के लिए बनाए गए सभी महान प्रदाताओं का पुन: उपयोग कर सकते हैं।
तो, इस सुझाव को C# user voice पर सबमिट करें या इसे कहीं और समर्थन दें (या इसे लागू करने के लिए मोनो टीम को मनाने के लिए!) और शायद इसे सी # (vNext + 1 + ...
) में जोड़ा जाएगा। अभी के लिए, आप केवल F # में सभी लाभ प्राप्त करेंगे।
स्रोत
2012-12-07 23:44:18
यह समुदाय विकी के रूप में होना चाहिए। मेरा मानना है कि यह काफी लंबी चर्चाओं को चकित करेगा। –