I have a web service with Class1
. Class1
has a List of images for a property
[Serializable]
[SoapInclude(typeof(Bitmap))]
public class Class1
{
private static List<Image> _myList = new List<Image>();
public List<Image> MyList
{
get { return _myList; }
set
{
_myList = value;
}
}
}
When doing a get on MyList
, the below error happens. Any ideas?
System.Web.Services.Protocols.SoapException: Server was unable to
process request. —> System.InvalidOperationException: There was an
error generating the XML document. —>
System.InvalidOperationException: The type System.Drawing.Bitmap was
not expected. Use the XmlInclude or SoapInclude attribute to specify
types that are not known statically. at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write4_Image(String
n, String ns, Image o, Boolean isNullable, Boolean needType) at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5_Class1(String
n, String ns, Class1 o, Boolean isNullable, Boolean needType) at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write6_HelloWorldResponse(Object[]
p) at
Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer1.Serialize(Object
objectToSerialize, XmlSerializationWriter writer) at
System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,
Object o, XmlSerializerNamespaces namespaces, String encodingStyle,
String id) — End of inner exception stack trace — at
System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,
Object o, XmlSerializerNamespaces namespaces, String encodingStyle,
String id) at
System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,
Object o, XmlSerializerNamespaces namespaces, String encodingStyle)
at
System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[]
returnValues, Stream outputStream) at
System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[]
returnValues) at
System.Web.Services.Protocols.WebServiceHandler.Invoke() — End of
inner exception stack trace —
Best Answer
I found the answer at the below URL. I needed the [XmlInclude] tag instead of the [SoapInclude] tag
Troubleshooting Common Problems with the XmlSerializer