2011-11-02 15 views
1

在我的应用程序的服务器端我有这样的功能:如何忽略WCF连接数据集架构

public function GetDS as MyTypedDS 
    Dim dsRetVal as new MyTypedDS 
    'Make fantastic things with the dataset 
    return dsRetVal 
end function 

在客户端我调用此函数通过生成的“服务引用”:

Dim ds as Reference1.MyTypedDS = myRefInst.GetDS 

如何禁用类型化数据集的模式序列化以减少流量?

在返回之前将“dsRetVal”的SchemaSerializationMode设置为ExcludeSchema是否就够了?或者这个选项被WCF忽略?

谢谢

+6

严肃地说 - 通过WCF发送数据集是一件非常可怕的事情(事实上其他任何事情都是可取的)。常规输入的对象将是非常可取的。如果目标是降低带宽,则可以使用其他序列化器,但对'DataSet'没有什么帮助。 –

+0

添加了一个建议'DataSet.RemotingFormat'的答案,但只是用'DataContractSerializer'对其进行了测试,并且没有使用它 - 所以不用担心。 –

+0

我店(金融产品商店)的老人决定写内部数据存储,仅仅因为这个原因,DataSet通过“.Net远程处理”是一个真正的蜗牛。这个数据存储的东西仍然像WCF中的魅力一样,当我将所有的.net远程处理的东西迁移到WCF –

回答

0

你试过设置在DataSet来SerializationFormat.Binary的RemotingFormat?我们广泛使用.Net Remoting DataSet(当然,我们只在绝对必要时才使用它),它对性能有很大的帮助。

几个其他的选项:

1)的二进制序列化数据集和刚传送的ByteArray

2)序列化数据集到一个字符串格式(即JSON)然后压缩所得的串并传输压缩数据。