2012-06-05 8 views
8

मैं प्रोटोकॉल बफर के लिए नया हूं और मैं वीएस -2010 के लिए प्रोटोबफ-नेट का उपयोग कर रहा हूं। जो मैं यहां पढ़ रहा हूं उससे Dictionary in protocol buffers, ऐसा प्रतीत नहीं होता है कि प्रोटोबफ ऑब्जेक्ट प्रकारों के साथ मूल्यों के रूप में एक शब्दकोश को क्रमबद्ध कर सकता है।सी # नेट प्रोटोकॉल बफर - ऑब्जेक्ट मूल्यों के शब्दकोश को क्रमबद्ध करने के लिए प्रोटोबफ-नेट समर्थन?

प्रकार

पर नोट्स समर्थित:

कस्टम वर्गों है कि: चिह्नित कर रहे हैं के रूप में डेटा अनुबंध सिल्वरलाइट के लिए एक parameterless निर्माता है: सार्वजनिक कई आम हैं, लेकिन यहां उसकी साइट पर मैं यह पढ़ पुरातन आदि भी आयाम सरणियों: टी [] सूची/IList शब्दकोश/IDictionary किसी भी प्रकार जो IEnumerable लागू करता है और एक जोड़ें (टी) विधि कोड मान लिया गया कि प्रकार के निर्वाचित सदस्यों के चारों ओर परिवर्तनशील हो जाएगा है। तदनुसार, कस्टम structs समर्थित नहीं हैं, क्योंकि वे अपरिवर्तनीय होना चाहिए।

जो ऐसा लगता है कि यह समर्थित है।

मैं सफलतापूर्वक इसलिए की तरह वस्तुओं की एक सूची संकलन कर सकते हैं:

message ValuesObject { 
    optional int32 SomeVal = 1; 
    repeated SomeClass ListOfSomeClassTypes = 2; 
} 

यह एक List<SomeClass> के लिए ठीक काम करता है। मैं प्रोटोबफ-नेट का उपयोग करके Dictionary<int, SomeClass> का उपयोग क्यों नहीं कर सकता? Dictionary<int, SomeClass> को क्रमबद्ध करने के लिए संदेश कैसा दिखता है?

उत्तर

9

Dictionary<int,SomeClass> प्रोटोबफ-नेट के साथ पूरी तरह से serailizable है। प्रोटोबफ-नेट वर्क्स सबसे आसान कोड कोड करने पर पहले, इसलिए: * अपने मॉडल में केवल Dictionary<int,SomeClass> है। आपको सभी पर .proto का उपयोग करने की आवश्यकता नहीं है - जो मुख्य रूप से क्रॉस-प्लेटफ़ॉर्म उद्देश्यों के लिए प्रदान की जाती है। .proto विनिर्देश एक शब्दकोश की कोई अवधारणा नहीं है, लेकिन अगर आप एक .proto स्कीमा का उपयोग करने के लिए आवश्यक हैं है, तो इस के रूप में धारावाहिक रूप है:

message KeyValuePairInt32SomeClass { 
    required int32 Key = 1; 
    required SomeClass Value = 2; 
} 

शब्दकोश साथ

repeated KeyValuePairInt32SomeClass YourDictionary = [n]; 
के रूप में
संबंधित मुद्दे