2012-01-17 36 views
0

我正在C#中編寫自定義CLR聚合以在SQL Server 2008中運行。我想將大部分SqlUserDefinedAggregate實例的狀態保留在字典中,因此我無法使用內置序列化。SQL Server CLR聚集:序列化字典?

我怎樣才能使用UserDefined序列化與Read()Write()方法?

回答

0

使用BinaryReaderBinaryWriter處理的鍵和值類型,將每個Dictionary寫入key0,value0 ... keyN-1,valueN-1順序中的BinaryWriter。在Dictionary的Count前加這個序列。在序列之後,寫一個常量來驗證字典的結尾。我個人喜歡0xDEADBEEF

對於反序列化,做相反的操作:初始化循環運行n次(n是流中的第一個整數),並在鍵/值對中讀取時添加到Dictionary中。最後,檢查你的常數。