2016-08-02 5 views
0

Web APIドキュメントのSwaggerを使用しています。私のウェブAPIで 以下のように、私は実体を持っている:私は、Web APIメソッドの入力パラメータとしてDerivedEntity1を使用して闊歩のドキュメントを生成しShouldSerialize *メソッドは、SWAGGERを使用してWeb APIドキュメントで呼び出されません。

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; 
    } 
} 

これまで問題はありませんが、DerivedEntity1 JSON文字列でBaseEntProp1 & BaseEntProp2の両方が除外されていることが示されています。誰かがそれらを排除する方法を助けることができますか?

注: 1. DerivedEntity1のDerEntProp1プロパティが正しく除外されています。 2.ドキュメントが生成された後にちょうど私のスタートアップ方法では、確認するために、私は、次のハードコードされている:

var temp = new DerivedEntity1 { 
        BaseEntProp1 = "should be ignored", 
        BaseEntProp2 = "this also should be ignored"}; 

    string tempJson = JsonConvert.SerializeObject(temp); 

テストの上には、すなわち、tempJsonはBaseEntProp1 & BaseEntProp2の両方を持っていない、渡されました。だから、私は何とか疑いSWAGGERは、適切ShouldSerialize *メソッドを呼び出すために失敗しています。どんな助けも高く評価されます。問題が闊歩に関連していないよう

おかげ

答えて

0

は最後に、私は別の方法でそれを解決しました。

私は、仮想プロパティを持つ基本抽象クラスを作成しました。派生クラスでは、それらのプロパティをオーバーロードし、JsonIgnore属性で装飾しました。これは私の問題を解決しました。

関連する問題