में नेमस्पेस के साथ काम करता है मुझे काम करने के लिए सर्विसस्टैक xml deserialization सबसे आसान तरीका है जब xml में नेमस्पेस होता है। हालांकि, मुझे प्राप्त XML में नामस्थान नहीं हैं। सबसे सरल कामकाजी उदाहरण:एक्सएमएल deserializing केवल xml
[Serializable]
public class test
{
}
class Program
{
static void Main(string[] args)
{
string xml="<test xmlns=\"http://schemas.datacontract.org/2004/07/\"></test>";
var result = ServiceStack.Text.XmlSerializer.DeserializeFromString<test>(xml);
}
}
हालांकि, यह वही नहीं है जो मैं चाहता हूं। मैं निम्नलिखित deserialize करना चाहते हैं, मैं कई सेवाओं से प्राप्त के बाद से उस xml है:
string xml="<test></test>";
लेकिन है कि मुझे निम्न त्रुटि देता है:
DeserializeDataContract: Error converting type: Error in line 1 position 7.
Expecting element 'test' from namespace
'http://schemas.datacontract.org/2004/07/'..
Encountered 'Element' with name 'test', namespace ''.
मैंने कोशिश की:
[Serializable]
[XmlRoot("test", Namespace = "")]
public class test
मैं एक नया सीरिएलाइज़र नहीं बना सकता, क्योंकि ServiceStack.Text.XmlSerializer स्थिर है। मुझे या तो Microsoft XmlSerializer या ServiceStack (दोनों नहीं) चुनने की आवश्यकता है। मतलब: अगर मुझे काम करने के लिए यह सरल उदाहरण नहीं मिल रहा है तो मुझे सर्विसस्टैक पैकेज के अन्यथा बहुत उपयोगी हिस्से को छोड़ना होगा। आखिरी चीज जो मैं चाहता हूं वह आने वाली एक्सएमएल में कुछ डमी नेमस्पेस इंजेक्ट करना है।
धन्यवाद! वह लापता लिंक था जिसकी मुझे ज़रूरत थी! मैं किसी भी तरह से सर्विसस्टैक के लिए इस तरह के सही दस्तावेज नहीं ढूंढ सकता ... – user1154148
कोई कारण नहीं है कि आपने अपना स्वयं का एक्सएमएल deserializer नहीं लिखा है? माइक्रोसॉफ्ट को इस तरह के जादू सॉस कॉन्फ़िगरेशन की आवश्यकता होती है, ताकि यह आपके JSON serializer/deserializer के विपरीत काम कर सके, जो बस काम करता है। – JasonD
@ जेसन डी हाँ मुझे अच्छे कारण के बिना एनआईएचिंग पसंद नहीं है और मैं एक्सएमएल का उपयोग नहीं करना पसंद करता हूं। एमएस का एक्सएमएल डीसीएस एक्सएमएल के लिए भी काफी प्रदर्शन करता है, इसके लिए आवश्यक प्रयासों के लिए बहुत कम लाभ होता है। – mythz