Como posso fazer uma classe C # com um membro como dicionários usando XSD?

StackOverflow https://stackoverflow.com/questions/211689

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu estou usando xsd.exe para fazer as classes C # para nossas configurações. Eu tenho uma configuração que é por servidor e por banco de dados, então eu quero a classe a se comportar como Dictionary . Então, eu quero ser capaz de dizer

string serverName = "myServer";
int databaseId = 1;
FieldSettings fieldSettings = getFieldSettings();

string[] fields = fieldSettings[serverName][databaseId];

Como faço para representar que em XSD?

Foi útil?

Solução

XSD define a estrutura de dados, não é realmente a abordagem de acesso. Eu não acho que você pode expressar "esta é uma pesquisa" em xsd:. Tudo é valores ou conjunto de valores / entidades

Se você quiser tratamento específico, você pode considerar a serialização personalizada -. Ou, alternativamente, considerar suas DTOs e sua trabalho classes como coisas separadas e simplesmente traduzir entre os dois

[editar] Como observa leppie - você pode escrever seu próprio indexador (tipicamente em uma classe parcial se gerando cs do xsd) que varre uma lista para localizar o item: isso lhe dará o uso de chamadas, mas não é realmente a experiência completa dicionário (singularidade, o (1) recuperação, etc)

Outras dicas

Este não é o que xsd é utilizado. Você pode sempre adicionar seu próprio indexador para a classe parcial, e marcá-lo com [XmlIgnore]

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