संपादित करें: इस समय मैं सवाल मैं कुछ कोशिश कर के thougt पूछा .. मैं अनुरोध पर XmlNamespace संपत्ति निर्धारित किया है और कहा कि चाल किया था ..RestSharp deserialize खाली गुण देता है लेकिन xml.deserialize परीक्षण काम करता है
request.XmlNamespace = "http://musicbrainz.org/ns/mmd-2.0#";
लेकिन मैं वास्तव में क्यों के रूप में समझ में नहीं आता ...
अगला समस्या RestSharp वस्तु गुण के रूप में एक्सएमएल गुण पहचान करने के लिए हो रही है
मैं इस सप्ताह के अधिकांश सप्ताह के लिए जा रहा हूं और मैं इसे काम करने के लिए नहीं मिला हूं।
मैं एक रेस्टफुल webservice (MusicBrainz) के चारों ओर एक रैपर लिखने की कोशिश कर रहा हूं। मैं एक साधारण उदाहरण के साथ परीक्षण कर रहा हूं: एक कलाकार का विवरण प्राप्त करें और इसे कस्टम कलाकार ऑब्जेक्ट में रखें।
जब मैं एक RestClient पर निष्पादित यह ठीक समाप्त हो जाती है, लेकिन मेरी वस्तु गुण अशक्त हैं है .. लेकिन जब मैं XmlDeserializer साथ अक्रमांकन परीक्षण objectproperties भर रहे हैं (लेकिन गुण है कि एक विशेषता के अनुरूप के लिए नहीं है, लेकिन मैं 'बाद में इसका सामना करेंगे)
प्रतिक्रिया के deserialization और object.data में वस्तु डालने के बीच क्या होता है? काफी संभव है कि यह एक "नौसिखिया" त्रुटि मैं इस रूप में बना रहा हूं RestSharp के साथ मेरी पहली कदम हैं है ..
..मदद की बहुत सराहना की जाएगी
Returnded xml:
<metadata>
<artist type="Group" id="f1548c5b-329e-4036-921c-02213a04b525">
<name>Uriah Heep</name>
<sort-name>Uriah Heep</sort-name>
<country>GB</country>
<life-span>
<begin>1970</begin>
</life-span>
</artist>
</metadata>
मेरे वर्ग:
public class Artist
{
public int Id { get; set; }
public string Type { get; set; }
public string Name { get; set; }
public string SortName { get; set; }
public string Country { get; set; }
}
निम्नलिखित कोड उत्पादन गुण में भर रहे हैं
var output = xml.Deserialize<Artist>(response);
लेकिन जब
var response = client.Execute<T>(request);
पूरा कोड (मैं सरलता के लिए सामान्य विधि में परीक्षण कोड डाल दिया है) पर कॉल एक ही प्रतिक्रिया गुण भर नहीं:
public T Execute<T>(RestRequest request) where T : new()
{
var client = new RestClient();
client.BaseUrl = BaseUrl;
client.Authenticator = null;
//does not fill properties
var response = client.Execute<T>(request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
var xml = new XmlDeserializer();
//fills properties
var output = xml.Deserialize<Artist>(response);
return response.Data;
}
मुझे आपको एक समाधान मिला जो मुझे रूचि होगी :-) –
@AndersBornholm। यह एक लंबा समय रहा है क्योंकि मैंने इस परियोजना पर कुछ काम किया है। लेकिन जहां तक मेरी याददाश्त "समाधान" को रेस्टशर्प अनुरोध पर नामस्थान सेट करना था .. यदि आप वास्तव में हताश हैं तो मैं प्रोजेक्ट खोद सकता हूं और नज़दीक दिख सकता हूं ... – FasterRaf
मैंने वास्तव में काम नहीं किया है मेरी परियोजना या तो लंबे समय तक। अगर मैं सही ढंग से याद करता हूं तो मैंने इसे restsharp के अलावा किसी अन्य चीज़ का उपयोग करके हल किया :-) –