Sto utilizzando Swashbuckle 5 nel mio progetto webapi ASP.NET con tutte le impostazioni predefinite. Serializza l'output del mio metodo per mostrarmi lo schema della risposta. Io sono sempre la documentazione che assomiglia a questo:k__BackingField rimuovi in C# (visto tramite Swashbuckle/Swagger)
Response Class (Status 200)
Model Model Schema
[
{
"<Key>k__BackingField": "string",
"<Value>k__BackingField": "string",
"<Id>k__BackingField": 0
}
]
Viene generato dal seguente codice C#
/// <summary>
/// Fetches all system configuration items
/// </summary>
/// <returns>List of <see cref="SystemConfigurationDto" /> items</returns>
public IList<SystemConfigurationDto> GetAllSystemConfigurationItems()
{
var result = CommandProcessor.ProcessCommand(new SystemConfigurationQueryCommand()) as SystemConfigurationQueryCommandResponse;
return result.Results.ToList();
}
dove result.Results è fondamentalmente uno standard Elenco di oggetti, ognuno dei quali contiene questi chiave/valore/id campi. Ho letto qui https://conficient.wordpress.com/2014/05/22/getting-rid-of-k__backingfield-in-serialization/ che l'attributo [serializzabile] potrebbe influire su questo, ma non sono disposto a sbarazzarmi di quell'attributo, se possibile. C'è qualche ricetta per regolare questo artefatto di serializzazione?
Questo mi ha avuto tutta la mattina. L'ho riscontrato all'improvviso questa mattina dopo aver aggiornato alcuni pacchetti NuGet. La soluzione ha funzionato in precedenza bene per diversi mesi. L'attributo '[Serializable]' non è, e non è mai stato, usato ovunque. L'aggiunta di questo snippet di codice l'ha risolta. Molto obbligato signore! – ceej
Grazie, ha funzionato anche per me – spooti