#c# #web-services #.net-4.5.2
#c# #веб-сервисы #.net-4.5.2
Вопрос:
У меня есть класс с именем Gender. У меня есть данные для чтения из веб-службы, и мне нужно преобразовать GenderObject в гендерную коллекцию, т.Е. List _GenderList = object.
using (StreamReader _Reader = new StreamReader(_Stream))
{
GeneratedXPathString = _Reader.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(GeneratedXPathString);
string xmlcontents = doc.InnerXml;
Object GenderObject = SystemCore.XMLPrasing.ObjectToXML(xmlcontents, typeof(Gender));
// List<Gender> GenderObject2 = ((IEnumerable<Gender>)GenderObject).Cast<Gender>().ToList(); //get error here
}
Гендерный класс
[Serializable]
[XmlRoot("Genders")]
public class Gender
{
[XmlElement("Genders")]
public List<GenderListWrap> GenderListWrap = new List<GenderListWrap>();
}
public class GenderListWrap
{
[XmlAttribute("list")]
public string ListTag { get; set; }
[XmlElement("Item")]
public List<Item> GenderList = new List<Item>();
}
public class Item
{
[XmlElement("CODE")]
public string Code { get; set; }
[XmlElement("DESCRIPTION")]
public string Description { get; set; }
}
Метод преобразования объекта в XML
public static partial class XMLPrasing
{
public static Object ObjectToXML(string xml, Type objectType)
{
StringReader strReader = null;
XmlSerializer serializer = null;
XmlTextReader xmlReader = null;
Object obj = null;
try
{
strReader = new StringReader(xml);
serializer = new XmlSerializer(objectType);
xmlReader = new XmlTextReader(strReader);
obj = serializer.Deserialize(xmlReader);
}
catch (Exception exp)
{
//Handle Exception Code
var s = "d";
}
finally
{
if (xmlReader != null)
{
xmlReader.Close();
}
if (strReader != null)
{
strReader.Close();
}
}
return obj;
}
GenderObject в режиме отладки
XML-документ
<Genders><Genders list="1">
<Item>
<CODE>M</CODE>
<DESCRIPTION>Male</DESCRIPTION></Item>
<Item>
<CODE>F</CODE>
<DESCRIPTION>Female</DESCRIPTION>
</Item></Genders>
</Genders>"
Комментарии:
1. Можете ли вы опубликовать XML, который вы пытаетесь десериализовать?
2. привет, я обновил свой вопрос, но структура XML, возможно, будет отличаться для других веб-сервисов
3. Вы пробовали Object GenderObject = SystemCore.xmlпереработку. ObjectToXML(xmlcontents, typeof(IEnumerable<Пол>)); ?
4. могу ли я отправить универсальный объект вместо объекта в классе десериализации, поскольку я все равно знаю тип класса
5. typeof(IEnumerable<Gender>) дает мне нулевое значение