Qualcuno potrebbe dirmi cosa significa il nome del nodo "d3p1" in questo?DataContract Nome nodo matrice serializzatore 'd3p1'
<ActionMessage>
<Data xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:anyType i:type="Agreement">
</d3p1:anyType>
<d3p1:anyType i:type="Agreement"> shortened
ho ricevuto molti "che sembra brutto" e "che cosa se i cambiamenti d3p1" commenti su questo la serializzazione di default nel mio progetto asp WebAPI. Dico che è leggibile anche a macchina. Ma sono curioso perché sembra così.
Ecco i dettagli, ho un verbo GET sul controller che restituisce un enumerabile di ActionMessage
public IEnumerable<ActionMessage> Get(Guid)
ActionMessage
non può essere un generico (se questo sarebbe nemmeno aiuto) come la lista conterrebbe azione messaggi di diversi tipi generici. "newagreement", "keychange", ecc.
Sarebbe come ActionMessage<NewAgreement>
o ActionMessage<KeyChange>
e molti altri. Non c'è modo di farlo nell'ottenere mentre get restituisce molti "tipi" di messaggi di azione. Al di fuori di una classe base o di un'interfaccia. OSSIA ActionMessage<IMessage>
ma questi messaggi non hanno nulla in comune.
Ecco come appare ora il messaggio di azione.
public class ActionMessage
{
[DataMember]
public Status Status { get; set; }
[DataMember]
[XmlElement(ElementName = "Agreement")]
[XmlArrayItem(ElementName = "testnode")]
public List<object> Data { get; set; }
[DataMember]
public MessageTypes Type { get; set; }
[DataMember]
public Guid Id { get; set; }
}
Nota l'XML "problematico" deriva dalla proprietà data.
Pensieri? La leggibilità umana dell'XML dovrebbe essere importante? Devo passare attraverso il dolore di passare dal serializzatore datacontract al serializzatore xml? Questo probabilmente abiliterà gli attributi del nome dell'elemento, ma preferisco lasciare tutto questo vaniglia, e mentre potrei controllare completamente l'XML generato, ho davvero bisogno di, o mi interessa davvero?
Questo post del blog può aiutarti a capire cosa sta succedendo: http://blogs.msdn.com/b/youssefm/archive/2009/04/21/understanding-known-types.aspx –
Great post Youssef. Questo è un ottimo lavoro del perché, e sto usando tonnellate di Temi conosciuti, quindi potrei aver bisogno di ripensare alcune cose. –