【发布时间】:2016-09-21 18:44:43
【问题描述】:
我的 WCF 服务以 XML 和 JSON 格式返回数据。
一个函数必须返回一个列表,因为我不知道将使用哪个类来填充这个列表。
所以,我有我的课:
public class WrapHome
{
public WrapHome() { }
private string p_TITOLO { get; set; }
public string TITOLO { get { return p_TITOLO.ToString(); } set { p_TITOLO = value; } }
private List<object> p_CHART { get; set; }
public List<object> CHART { get { return p_CHART; } set { p_CHART = value; } }
}
还有我的 WCF 声明:
[OperationContract]
[WebGet(UriTemplate = "datiHome.xml?token={token}&p1={p1}&p2={p2}", ResponseFormat = WebMessageFormat.Xml)]
List<WrapHome> GetDatiHomeXML(string token, string p1, string p2);
输出设置正确,但是,当它必须以 XML(或 JSON)的形式返回时,它会重新调用该方法并最终给出 err_connection_reset 错误。
我知道问题出在列表上,因为如果我评论它,它就会起作用。如何在 WCF 输出中使用我的列表?
如果您需要更多详细信息,请毫无问题地问我。
【问题讨论】:
-
您可以枚举所有可能最终出现在 List 中的类型,对吧?
-
@rudolf_franek 好吧,我想是的,可能的类型总共是 5 或 6,所以是的。为什么?
-
你可以为你的对象定义一个基本类型,它应该被放入 List - 这个对象可以用 KnownTypeAttribute 标记 - 所有类型都作为参数列出.. - 或者 KnownTypes 可以在级别上定义服务/合同
-
@rudolf_franek 你有例子吗?没看懂。。
-
好久没做WCF了,需要把[DataMember]加到WrapHome类的public List
标签: c# list wcf object connection-reset