У меня есть базовый класс в одной сборке и большое количество сгенерированных классов в другом, которые наследуются от базового класса. Использование protobuf-net (r282) для сериализации списка базового типа не удается при попытке разрешить subclassType (строка 248 SerializerT.cs), поскольку подкласс не находится в сборке базового класса. Перемещение классов вместе не является предпочтительным вариантом, и очень важно, чтобы я мог проходить List.protobuf-net [de] сериализация по границам сборки
Вот мой основной базовый класс. Включенные типы отмечены как ProtoMember(x)
.
[ProtoContract]
[ProtoInclude(1,"SomeItemType")]
[ProtoInclude(2,"AnotherItemType")]
[ProtoInclude(190,"YetAnotherItemType")]
public abstract class BaseItem
{
}
Как примечание стороны, это является частью оценки с использованием Protobuf-сети, чтобы заменить BinaryFormatter для перемещения данных между настольным приложением и SOAP веб-сервиса.
Могу ли я вообще что-то делать? Есть ли способ лучше? Я просто пропустил что-то очевидное? Отдельный долгосрочный вопрос заключается в том, должен ли я делать что-то немного другое, чтобы подготовиться к возможному переходу на 3.5?
Спасибо Marc, именно то, что я искал. Использование полного имени, присвоенного сборке, сделало трюк. Поскольку мой SomeItemType недоступен в базовом классе, typeof (SomeItemType) не работает в этом случае. Еще раз спасибо. – tsupe