.NET Web API - 意外类型

时间:2012-03-29 12:23:44

标签: c# serialization asp.net-web-api

使用新的ASP.NET MVC Web API,我收到以下错误

The type InfoboardPage was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.

我正在尝试返回所有来自同一个类的对象列表:InfoboardItem

我已根据指示为每个相关类型添加了XmlInclude属性,但我仍然收到此错误。

[HttpGet]
[XmlInclude(typeof(InfoBoardEvent))]
[XmlInclude(typeof(InfoboardPage))]
[XmlInclude(typeof(InfoboardEventVisitor))]
public List<InfoboardItem> Pages(int ClientNum, int SiteNum, int LangNum)
{
    Data infoboardData = new Data(ClientNum, SiteNum, LangNum, 1);
    var obRetVal = infoboardData.GetPageSequence("~/InfoBoard");

    return obRetVal;
}

以前有人见过这个问题吗?有解决方案吗?或者这是产品的问题吗?

1 个答案:

答案 0 :(得分:2)

您需要将[XmlInclude]声明添加到InfoboardItem类型,而不是操作,以将派生元素作为XML返回。