Ich verwende Swagger für die Web-API-Dokumentation. In meinem Web-API, ich habe Entitäten wie folgt:Die Methoden von ShouldSerialize * werden in der Web-API-Dokumentation mit SWAGGER nicht aufgerufen
public class BaseEntity
{
public string BaseEntProp1{get;set;}
public string BaseEntProp2{get;set;}
public virtual bool ShouldSerializeBaseEntProp1()
{
return true;
}
public virtual bool ShouldSerializeBaseEntProp1()
{
return true;
}
}
public class DerivedEntity1 : BaseEntity
{
[JsonIgnore]
public string DerEntProp1{get;set;}
public string DerEntProp2{get;set;}
public override bool ShouldSerializeBaseEntProp1()
{
return false;
}
public override bool ShouldSerializeBaseEntProp1()
{
return false;
}
}
I DerivedEntity1 als Eingabeparameter für eine Web-API-Methode und erzeugt die Prahlerei Dokumentation.
Bis dahin ist es in Ordnung, aber das Problem ist, abgeleiteteEntity1 JSON Zeichenfolge in dieser Dokumentation zeigt BaseEntProp1 & BaseEntProp2, die ausgeschlossen werden sollen. Kann mir jemand helfen, diese auszuschließen?
Hinweis: 1. Die DerEntProp1-Eigenschaft von DerivedEntity1 wird ordnungsgemäß ausgeschlossen. 2. Nur um zu bestätigen, in meinem Startup-Methode nach der Dokumentation erzeugt wird, ich folgende fest einprogrammiert haben:
var temp = new DerivedEntity1 {
BaseEntProp1 = "should be ignored",
BaseEntProp2 = "this also should be ignored"};
string tempJson = JsonConvert.SerializeObject(temp);
Above Test bestanden, das heißt nicht tempJson nicht beide BaseEntProp1 & BaseEntProp2. Also, ich vermute, dass SWAGGER es versäumt, die richtigen ShouldSerialize * -Methoden aufzurufen. Jede Hilfe wird sehr geschätzt.
Dank