आप WCF बाकी स्टार्टर किट पूर्वावलोकन स्थापित है, तो वहाँ एक साफ चाल है:
- खुला दृश्य स्टूडियो
- अपने XML नोड सामग्री (एक्सएमएल है कि आपके नोड्स में से एक का निर्माण करता है) का चयन करें और कॉपी यह क्लिपबोर्ड
- दृश्य स्टूडियो में अपने "संपादन" मेनू से करने के लिए,
यह आपके एक्सएमएल एक सी # वर्ग है कि के रूप में अपने प्रोजेक्ट में क्लिपबोर्ड पर है कि पेस्ट जाएगा "प्रकार के रूप में चिपकाने के एक्सएमएल" लेने उस सटीक एक्सएमएल को deserializing करने में सक्षम। बहुत निफ्टी!
इसके बारे में इन ब्लॉग पोस्ट देखें:
है कि आप लिखने का बहुत बचाने के लिए और जीवन एक बहुत आसान बनाना चाहिए!
अद्यतन:
ठीक है, आप पहले से ही एक्सएमएल वापस पहुंचने से उत्पन्न अपनी कक्षाओं की है। अब आपको अपनी कक्षा में XmlNode
रूपांतरित करने की आवश्यकता है।
आप कुछ इस तरह करना होगा:
private static T ConvertNode<T>(XmlNode node) where T: class
{
MemoryStream stm = new MemoryStream();
StreamWriter stw = new StreamWriter(stm);
stw.Write(node.OuterXml);
stw.Flush();
stm.Position = 0;
XmlSerializer ser = new XmlSerializer(typeof(T));
T result = (ser.Deserialize(stm) as T);
return result;
}
आप एक धारा (यहाँ एक MemoryStream
) को XmlNode
की एक्सएमएल प्रतिनिधित्व (संपत्ति .OuterXml
) लिखने और फिर XmlSerializer
का उपयोग क्रमानुसार करने की जरूरत है उस धारा से वस्तु वापस।
आप सामान्य विधि के साथ यह कर सकते हैं और फोन
Customer myCustomer = ConvertNode<Customer>(xmlNode);
या आप भी तो आप लिख सकते हैं XmlNode
वर्ग पर या तो एक विस्तार विधि में है कि कोड बदल सकता है:
Customer myCustomer = xmlNode.ConvertNode<Customer>();
मार्क
स्रोत
2009-10-14 07:15:11
हाय, मेरे पास पहले से ही xsd से ऑब्जेक्ट्स हैं इसलिए मैं वास्तव में इस चरण को करने के लिए नहीं हूं। मैं सीखना चाहता हूं कि xmlNodes [] (serialized ऑब्जेक्ट) से जाने का सबसे अच्छा तरीका क्या है। – 76mel