0
Это XML, который я пытаюсь десериализовать. Я продолжаю получать «resultConfig xmlns = ''> не ожидалось."}XmlSerializer deserializer возвращает ошибку xmlns
Я устал от решения этой проблемы, когда ничего не делалось. Заранее спасибо.
<?xml version="1.0" encoding="UTF-8" ?>
<resultConfig>
<folders>
<folder>
<location>C:\</location>
</folder>
<folder>
<location>C:\Temp</location>
</folder>
</folders>
<resultClasses>
<resultClass name="ScdExctractSqlXYZ" type="CSV">
<resultTypeQuery>REGEX</resultTypeQuery>
<testIdQuery>REGEX</testIdQuery>
</resultClass>
<resultClass name="SubNotification" type="XML">
<resultTypeQuery>XPATH</resultTypeQuery>
<testIdQuery>XPATH</testIdQuery>
<transformation>something.xsl</transformation>
</resultClass>
</resultClasses>
</resultConfig>
я объявил свой класс объект как:
namespace TestGen
{
public class ResultClasses
{
[XmlRoot("resultConfig")]
public class resultConfig
{
[XmlArray("folders")]
[XmlArrayItem("folder")]
public List<folder> folders { get; set; }
[XmlArray("resultClasses")]
[XmlArrayItem("resultClass")]
public List<resultClass> classes { get; set; }
}
public class folder
{
[XmlArray("location")]
public string location { get; set; }
}
public class resultClass
{
[XmlAttribute("name")]
public string name { get; set; }
[XmlAttribute("type")]
public string type { get; set; }
[XmlArrayItem("resultTypeQuery")]
public string resultTypeQuery { get; set; }
[XmlArrayItem("testIdQuery")]
public string testIdQuery { get; set; }
[XmlArrayItem("transformation")]
public string transformation { get; set; }
}
}
}
Затем я называю мой десериализатор таким образом:
using (FileStream reader = new FileStream(@"C:\ResultConfig.xml", FileMode.Open, FileAccess.Read))
{
XmlSerializer serializer = new XmlSerializer(typeof(ResultClasses));
var ei = serializer.Deserialize(reader);
}
Выполнение этой функции возвращает ошибку: произошла ошибка, отражающая тип «TestGen.resultConfig», сверлящий в стек. Я вижу это: {«Произошла ошибка, отражающая папки свойств».} – eetawil
Дальнейшее копание я получаю: -array, вы можете использовать следующие атрибуты: XmlAttribute, XmlText, XmlElement или XmlAnyElement. " , кажется, жалуется на мой элемент –
eetawil
Решенный: я заменяю XMLArrayItem XmlElement местоположением моих элементов, resultTypeQuery, testIdQuery и преобразованием. Я также сделал то, что предложил @martinhonnen. – eetawil