1

我有一个带有Class1. Class1有一个属性的图像列表

[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;
        }
    }
}

进行 get on 时MyList,会发生以下错误。有任何想法吗?

System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.InvalidOperationException:生成 XML 文档时出错。---> System.InvalidOperationException:类型 System.Drawing.Bitmap 不是预期的。使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5_Class1(字符串 n、字符串 ns、Class1 o、 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write6_HelloWorldResponse(Object[] p) 中 Microsoft.Xml.Serialization 中的 Boolean isNullable, Boolean needType)。
在 System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream) 在 System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues) 在 System.Web.Services.Protocols.WebServiceHandler。 Invoke() --- 内部异常堆栈跟踪结束 ---

4

2 回答 2

2

我在以下网址找到了答案。我需要 [XmlInclude] 标签而不是 [SoapInclude] 标签

对 XmlSerializer 的常见问题进行故障排除

    [Serializable]
    [XmlInclude(typeof(Bitmap))]
    public class Class1
    {

}
于 2012-04-25T18:37:17.420 回答
0

根据文档中的示例,我相信您必须[SoapInclude]在实际的 SOAP WebService 方法上应用该属性:

public class MyService : WebService {

    [SoapInclude(typeof(Bitmap))]
    public List<Image> GetImageList() {
        // code here
    }

}
于 2012-04-25T18:31:19.187 回答