我的“svcutil.exe”生成的WCF服务代理客户端出现了一个非常奇怪的问题。如果我没有返回DataTable的函数,我的WCF服务工作正常。一旦我添加一个返回DataTable的方法,svcutil.exe生成的客户端表现得非常奇怪。找不到该接口,客户端无法调用该服务。但是,如果我添加作为服务参考,它的工作非常顺利。我知道使用DataTable作为返回类型不是一个好习惯,但我需要。我不能使用服务参考:-(任何想法为什么它的行为或我缺少的东西!!!
答案 0 :(得分:2)
查看 DataTableSurrogate 类。它由SyncFramework用于序列化,非常易于使用。 MSDN DataTableSurrogate
答案 1 :(得分:1)
你不应该真正序列化数据集,而是应该使用数据模型并与后端和数据集上的数据集,表格,阅读器等保持一致。在业务层。
但是..如果你想这样做,你需要在svcutil中添加以下“include”,这会导致你的问题。 (告诉重用System.Data.dll中定义的类型而不在代理中生成它们)
/r:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll