protobuf-net DataContractSurrogates?

Прямо сейчас я использую DataContractSerializer вместе с DataContractSurrogate для предоставления описаний сериализации для прокси-классов NHibernate (как описано в http://timvasil.com/blog14/post/2008/02/WCF-serialization-with-NHibernate.aspx).

Я действительно заинтересован в переходе на protobuf-net для сериализации моих данных с помощью protobuf, но я не могу найти способ использовать DataContractSurrogate. Без этой функции я безнадежен для сериализации динамических прокси-классов NHibernate, производных от классов моей модели.


person David Pfeffer    schedule 25.12.2010    source источник


Ответы (1)


Я не эксперт по NHibernate, но в v2 есть несколько вещей, разработанных для этого сценария; Прежде всего, это встроенный код, предназначенный для распознавания прокси-серверов NH и соответствующей обработки (в частности, не жаловаться на неизвестные типы).

Однако я прочитаю связанную статью; без дополнительного опыта NH я не могу быть уверен, что текущий подход достаточен. Я также был бы более чем счастлив получить любые тестовые примеры, которые я мог бы использовать, чтобы доказать, что это соответствует потребностям.

person Marc Gravell    schedule 25.12.2010
comment
В этом случае это не специфично для NHibernate... в основном необходимо, чтобы производный класс b был сериализован, как если бы он был базовым классом a без какого-либо внимания к тому факту, что мы действительно имеем дело с экземпляром дочернего класса (и без какой-либо возможности перечислить эти производные классы как известные типы). - person David Pfeffer; 02.01.2011
comment
@David, на самом деле это да, потому что мне нужно знать, что такое поддельный прокси (хорошо) и неожиданный подтип (нехорошо, так как он поддерживает наследование сериализатор). В данный момент я ищу интерфейс маркера NHibernate.Proxy.INHibernateProxy - который, я подозреваю, вы согласитесь, довольно специфичен ;p - person Marc Gravell; 03.01.2011
comment
Хорошо, я понимаю, что вы говорите. Возможно, просто введите атрибут, который говорит, что все подклассы следует игнорировать, если они не известны? - person David Pfeffer; 08.01.2011