Ho l'obbligo di creare un webservice per esporre determinati elementi da un CMS come servizio Web, e ho bisogno di alcuni suggerimenti: la struttura degli elementi è tale:
item - field 1 - field 2 - field 3 - field 4
Quindi, si potrebbe pensare che la classe per questo sarà:
public class MyItem
{
public string ItemName { get; set; }
public List<MyField> Fields { get; set; }
}
public class MyField
{
public string FieldName { get; set; }
public string FieldValue { get; set; } //they are always string (except - see below)
}
Questo funziona quando è sempre un livello profondo, ma a volte, uno dei campi è in realtà un punto di un altro elemento ( MyItem
) o più MyItem
( List<MyItem>
), quindi ho pensato di cambiare il struttura di MyField
come segue, per rendere FieldValue
come object
;
public class MyField
{
public string FieldName { get; set; }
public object FieldValue { get; set; } //changed to object
}
Quindi, ora, posso mettere tutto ciò che voglio lì dentro. Questo è fantastico in teoria, ma come lo consumeranno i clienti? Sospetto che quando gli utenti fanno riferimento a questo servizio Web, non sapranno quale oggetto viene restituito in quel campo? Questo sembra un design non-così-buono. C'è un approccio migliore a questo?