【发布时间】:2010-09-02 08:50:19
【问题描述】:
我想通过 WCF 方法传递一组相当通用的数据。数据基本上只是一组分层的键/值对,但它嵌套在任意级别。我最初考虑将它作为单个字符串传递并在任一端执行 XML 或 JSON 或类似的编码/解码,但由于 WCF 传输无论如何都是 XML 看起来有点傻,所以我希望有一种方法可以通过它“自然地”。
方法相当简单:
[OperationContract]
void ProcessData(DataTree tree);
与:
public class DataTree : Dictionary<string, DataTree>
{
}
这一切都编译得很好,但是当我尝试运行该服务时,它会在 DataContract.GetStableName 下出现 StackOverflowException 崩溃。
我尝试在DataTree 类上添加[CollectionDataContract] 属性并明确指定所有名称,但这似乎没有任何区别。
我也试过在上面加上[DataContract],但它甚至更早失败了,因为Dictionary 是ISerializable。
有什么想法吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: c# wcf .net-3.5 dictionary iserializable