2012-02-24 10 views
8

मुझे गुणों को कैसे चिह्नित करना चाहिए, अगर उनके पास डिफ़ॉल्ट मान हैं तो उन्हें क्रमबद्ध नहीं किया जाना चाहिए? उदाहरण के लिए यदि मेरे पास बूलियन मान है तो shoudl को serialized किया जा सकता है यदि केवल सत्य पर सेट किया गया है, तो शून्य के साथ समान, यदि वे शून्य हैं तो मैं उन्हें अपनी क्रमिक फ़ाइल में शामिल नहीं करना चाहता हूं।धारावाहिक डिफ़ॉल्ट मानों से कैसे बचें?

+0

क्या इस का उद्देश्य है !? –

+0

में छोटे सीरियलाइज्ड फ़ाइल होने के लिए मुझे कभी-कभी इसे जीआरएस नेटवर्क फेंकने की ज़रूरत होती है, जहां मुझे बहाली के लिए भुगतान करना पड़ता है, वैसे भी बहाली (deserialization) के दौरान उन्हें डिफ़ॉल्ट मूल्य पर सेट किया जाएगा यदि वे मौजूद नहीं हैं तो उन्हें क्रमबद्ध करने से कैसे बचें? – kosnkov

+0

मुझे लगता है कि आपको या तो अपने स्वयं के नियमों के साथ अंतर्निहित धारावाहिक के परिणाम को पोस्ट करना होगा, या पोस्टप्रोसेस को पोस्ट करना होगा। –

उत्तर

22

ठीक है, मैं इसे अपने आप को पाया: मूल रूप से आप कुछ इस तरह लिखने के लिए की है। यह है। अगर मैं इस एटीआर के साथ कुछ संपत्ति को चिह्नित करता हूं तो यह केवल तभी क्रमबद्ध किया जाएगा जब() में मान से अलग है।

System.ComponentModel.DefaultValueAttribute

+0

धन्यवाद! किसी भी विचार से बचने के लिए कि मुझे डिफ़ॉल्ट मान दो बार रखना है? '[डिफ़ॉल्ट वैल्यू (" स्थिति ")] सार्वजनिक स्ट्रिंग स्थितिटाग =" स्थिति ";' – pfuhlert

4

निर्दिष्ट संपत्ति जैसी चीज है। मुझे एमएसडीएन दस्तावेज नहीं मिल रहा है लेकिन this article सहायक होना चाहिए।

//this property would not be serialized if it contains String.Empty value 
public string PropertyName { get; set; } 


[XmlIgnore] 
public bool PropertyNameSpecified 
{ 
    get { return PropertyName != String.Empty; } 
} 
+0

{वापसी संपत्ति नाम! = स्ट्रिंग। लक्षण प्राप्त करें; } वो क्या है? आप स्ट्रिंग के साथ बूल की तुलना कर रहे हैं, और जब मैं xmlIgnore जोड़ता हूं तो यह धारावाहिक फ़ाइल में कभी नहीं दिखाई देता है, भले ही यह संपत्ति शून्य न हो या बूल के मामले में सही न हो। – kosnkov

+0

मैंने अपना जवाब संपादित कर लिया है। उम्मीद है कि यह आपको वहां क्या हो रहा है की उचित समझ दे। समाधान के लिए –

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