Пожалуй, самый простой способ использования ProtoInclude
- с typeof
, поскольку это автоматически обработает многие нюансы для вас:
[ProtoInclude(1, typeof(SomeItemType))]
В качестве альтернативы вы можете просто использовать имена, соответствующие сборке,Итак:
[ProtoInclude(1,"SomeItemType, SomeRandomAssembly")]
В довольно специфическом случае, включающем несколько AppDomain
с, я обнаружил, что вы можете также поработать над магией с событием AppDomain.TypeResolve
, но этого следует избегать, если это возможно.У меня также есть полная переработка слоя метаданных в конвейере, что обеспечивает гораздо большую гибкость во время выполнения (вместо того, чтобы объявлять что-либо при компиляции, что вызывает некоторые из описанных выше проблем).