Pergunta

Eu comecei a olhar para usando proto-buf .Net para minhas necessidades de serialização para o navegador de mídia.

No novo sistema, temos uma estrutura de entidade que pode ser estendido com plug-ins.

Assim, por exemplo, nós definimos uma classe de mídia na biblioteca central, e em seguida, plug-ins pode definir subclasses tais como Song.

Parece que proto-buf .Net precisa saber sobre todos os sub tipos de nosso núcleo definido classe base.

Então, eu sou esperada para decorar minha classe base com

[ProtoInclude(2, typeof(Song))]

Mas ... naquele momento eu não sei nada sobre a classe Song que não existe ainda.

É de volta à prancheta de desenho? Estou tentando fazer algo a biblioteca não é projetado para?

Foi útil?

Solução

(do autor)

Na versão atual, é fixo para tipos conhecidos para o pai. No entanto, esta é uma limitação conhecida, para que haja um plano para abstrair a meta-modelo para que ele possa ser fornecidas separadamente em tempo de execução - amplamente comparável à forma como você fornecer tais informações para XmlSerializer (ele ainda vai precisar de uma maneira de fornecer etiquetas ( o "2" acima), por tipo).

Eu comecei este trabalho, mas eu esperava que levar algumas semanas para obtê-lo em pleno funcionamento (a refatorar também vai amarrar em algumas outras mudanças para ajuda estrutura compacta ).

Então, até você ... se você pode esperar algumas semanas, espero ter alguma coisa de trabalho.

Note que você ainda precisa de alguma forma de gerar (e repetíveis originais) tags para todos os diferentes sub-tipos -. Configuração, etc

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top