Я столкнулся с той же проблемой, и после исследования я сделал следующее, что решило проблему:
обычно в классе вы найдете два свойства, вызывающих ошибку:
private System.Xml.Linq.XElement[] anyField;
private System.Xml.Linq.XElement any1Field;
ЧтоЯ сделал следующее:
1 - измените первое свойство из массива на переменную с одним значением следующим образом
private System.Xml.Linq.XElement anyField;
2 - измените методы получения и установки этого свойства, чтобысоответствовать вашим изменениям
[System.Xml.Serialization.XmlAnyElementAttribute(Namespace="http://www.w3.org/2001/XMLSchema", Order=0)]
public System.Xml.Linq.XElement Any {
get {
return this.anyField;
}
set {
this.anyField = value;
this.RaisePropertyChanged("Any");
}
}
3 - удалить или закомментировать второе свойство
// private System.Xml.Linq.XElement any1Field;
4 - удалить или закомментировать методы получения и установки второго свойства
/*
[System.Xml.Serialization.XmlAnyElementAttribute(Namespace="urn:schemas-microsoft-com:xml-diffgram-v1", Order=1)]
public System.Xml.Linq.XElement Any1 {
get {
return this.any1Field;
}
set {
this.any1Field = value;
this.RaisePropertyChanged("Any1");
}
}
*/
Теперь вы можете получить доступ к полученному XML следующим образом, вызвав свойство «Any», которое вернет XML, которым вы можете манипулировать:
ex, в моем случае это был следующий класс, вызывающий проблемы
public partial class GetUserBalancesClassAccounts
в моем методе я смог получить доступ к XML следующим образом
GetUserBalancesClassAccounts accts = balances.Accounts;
XElement doc = accts.Any;
foreach( XElement docElement in doc.Elements()){
foreach (XElement account in docElement.Elements("Account"))
{
... do something ...
}
}