У меня есть следующий XML:
<SQLToData>
<PreProcessors>
<PreProcessor>
<Name>Input1</Name>
<Expression>1 == a</Expression>
</PreProcessor>
</PreProcessors>
<DataSource>
<Type>SQLServer</Type>
<ConnectionString>Data Source=****</ConnectionString>
</DataSource>
<SQL>
SELECT * FROM TABLE
</SQL>
<ReturnType>DataTable</ReturnType>
</SQLToData>
И следующие классы C #:
public class SQLToData
{
public SQLToDataDataSource DataSource { get; set; }
[XmlArray("PreProcessors")]
public SQLToDataPreProcessor[] PreProcessors { get; set; }
public string SQL { get; set; }
public string ReturnType { get; set; }
}
[XmlRoot("DataSource")]
public class SQLToDataDataSource
{
public string Type { get; set; }
public string ConnectionString { get; set; }
}
[XmlRoot("PreProcessor")]
public class SQLToDataPreProcessor
{
public string Name { get; set; }
public string Expression { get; set; }
}
Я называю Сериализатор следующим образом:
XDocument xml = XDocument.Load(xmlPath);
XmlSerializer inputSerializer = new XmlSerializer(typeof(SQLToData));
XElement xmlElement = xml.XPathSelectElement("/SQLToData");
SQLToData config;
using (TextReader reader = new StringReader(xmlElement.ToString()))
{
config = (SQLToData)inputSerializer.Deserialize(reader);
}
Однако я не получаю данные в массиве для PreProcessors
.
Что у меня не так в моей конфигурации?