2011-11-02 31 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)然後壓縮所得的串並傳輸壓縮數據。