(नोट: डिक्शनरी जहां टी कुछ प्रोटोकंट्रैक्ट/प्रोटोमेम्बेड क्लास ठीक काम करता है।) यह समस्या केवल मेरे लिए टाइप ऑब्जेक्ट के साथ होती है।प्रोटोबफ-नेट में एक शब्दकोश <स्ट्रिंग, ऑब्जेक्ट> को क्रमबद्ध करना
मैं शब्दकोश के शब्दकोश का एक शब्दकोश क्रमबद्ध करने की कोशिश कर रहा था।
टाइपऑफ (ऑब्जेक्ट) काम नहीं करता है। इसे होना चाहिए? क्या मुझे एक स्ट्रिंग आधारित काम को चारों ओर लागू करना चाहिए?
इस परिदृश्य में, ऑब्जेक्ट केवल एक .net आदिम होगा।
[Test]
public void De_SerializeObjectDictionary2()
{
var d = new Dictionary<string, object>();
d.Add("abc", 12);
var ms = new MemoryStream();
var model = ProtoBuf.Meta.RuntimeTypeModel.Default;
//model.AutoAddMissingTypes = true;
//model.AutoCompile = true;
//model.InferTagFromNameDefault = true;
//model.Add(typeof (object), false);
//model.Add(typeof(Int32), true);
//model[typeof (object)].AddSubType(50, typeof (Int32));
model.Serialize(ms, d);
Serializer.Serialize<Dictionary<string,object>>(ms, d);
// <--- No serializer defined for type: System.Object
// or
//model.Add(typeof (object), false);
//Serializer.Serialize<Dictionary<string, object>>(ms, d);
//<-- Unexpected sub-type: System.Int32
ms.Position = 0;
var d2 = Serializer.Deserialize<Dictionary<string, object>>(ms);
}
मैं समय से आगे इन प्रकार परिभाषित करने का प्रयास ... लेकिन मैं वे Protobuf शुद्ध
//model.Add(typeof (object), false);
//model[typeof (object)].AddSubType(50, typeof (Int32));
/*
//model.Add(typeof(int), false);
//model.Add(typeof(string), false);
//model.Add(typeof(short), false);
//model.Add(typeof(DateTime), false);
//model.Add(typeof(long), false);
//model.Add(typeof(bool), false);
//model.Add(typeof(int[]), false);
//model.Add(typeof(string[]), false);
//model.Add(typeof(short[]), false);
//model.Add(typeof(DateTime[]), false);
//model.Add(typeof(long[]), false);
//model.Add(typeof(bool[]), false);
//model.Add(typeof(int?), false);
//model.Add(typeof(short?), false);
//model.Add(typeof(DateTime?), false);
//model.Add(typeof(long?), false);
//model.Add(typeof(bool?), false);
//model.Add(typeof(int?[]), false);
//model.Add(typeof(short?[]), false);
//model.Add(typeof(DateTime?[]), false);
//model.Add(typeof(long?[]), false);
//model.Add(typeof(bool?[]), false);
//model.Add(typeof(byte[]), false);
//model.Add(typeof(byte), false);
क्या आप समय के सभी संभावित प्रकारों को जानते हैं? यहां कितने प्रकार हैं? –
शब्दकोश serializable शब्दकोश में सभी प्रकार हैं? –
हां। यहां उन प्राइमेटिव्स हैं जिन्हें मैंने आजमाया। वे सभी एक त्रुटि का कारण बनते हैं। मुझे लगता है कि वे पहले ही प्रोटोबफ-नेट लाइब्रेरी द्वारा परिभाषित हैं। – sgtz