2012-01-17 3 views
0

Я пишу настраиваемое агрегирование CLR в C# для запуска в SQL Server 2008. Я хочу хранить большинство своих состояний экземпляров SqlUserDefinedAggregate в словарях, поэтому я не могу использовать встроенную сериализацию.SQL Server CLR Aggregate: Сериализовать словарь?

Как я могу использовать серию с использованием с методами Read() и Write()?

ответ

0

Использование ключей и значений типов, которые обрабатываются BinaryReader и BinaryWriter, записывайте каждый словарь в BinaryWriter в key0, value0 ... keyN-1, valueN-1. Префикс этой последовательности с помощью словаря Count. После последовательности напишите константу, чтобы проверить конец словаря. Мне нравится 0xDEADBEEF.

Для десериализации сделайте обратное: запустите цикл, чтобы выполнить n раз (n - первое целое число в вашем потоке) и добавьте в словарь, когда вы читаете пары ключ/значение. В конце проверьте свою константу.

Смежные вопросы