You need to sign in to do that
Don't have an account?
How to deserialize XML to ApiFault instance?
Hi all!
I see this XML in SoapException.Detail:
<sf:LoginFault xsi:type="sf:LoginFault" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sf="urn:fault.enterprise.soap.sforce.com">
<sf:exceptionCode>INVALID_LOGIN</sf:exceptionCode>
<sf:exceptionMessage>Invalid username, password, security token; or user locked out.</sf:exceptionMessage>
</sf:LoginFault>
How do I deserialize XML to the correct ApiFault subclass? Does anybody do it?
I get "<LoginFault xmlns='urn:fault.enterprise.soap.sforce.com'> was not expected." when I try to do this:
using (var reader = new StringReader(input))
{
fault = (ApiFault)new XmlSerializer(typeof(ApiFault)).Deserialize(reader);
}
Thanks!
When you want something done, do it yourself. :)
private static ApiFault GetApiFault(SoapException soapException)
{
var apiFaultXml = soapException.Detail.FirstChild;
var serializer = new XmlSerializer(
typeof(ApiFault),
new XmlRootAttribute
{
ElementName = apiFaultXml.LocalName,
Namespace = apiFaultXml.NamespaceURI
});
using (var reader = new StringReader(apiFaultXml.OuterXml))
{
return (ApiFault)serializer.Deserialize(reader);
}
}