2016-08-31 4 views
0

私は継承されたメンバーboolを隠して、その値をnull(私はする必要があります)にします。 しかし、このクラスのインスタンスをシリアル化で使用すると、元の値はシリアル化され、bool?ではなくシリアル化されます。RestSharp - 非表示のクラスメンバーのシリアル化を避けるにはどうすればよいですか?

public class SomeDto 
{ 
    public bool IsRemoved { get; set; } = false; //Serialization is using this one 
} 

    public class SomeClass: SomeDto 
{ 
    public new bool? IsRemoved { get; set; }//Instead of this one 
} 


    private void Serialize() 
{ 
    SomeClass someClass = new SomeClass(); 
    someClass.IsRemoved = null; 

    RestRequest request = new RestRequest(Method.POST); 
    request.AddBody(someClass); 
} 

この新しいプロパティを元のプロパティではなく取得するためにシリアル化を強制する必要はありますか?

答えて

1

種類が同じではありません。その上に 'new'を宣言するのは無駄です。なぜなら、名前のせいでそれをオーバーライドしないからです。両方の型がオブジェクトに存在します(ヌルブルブールと通常のブール[何と同じですが、それは文字列などとして、あなたは実際にコンパイラからそれを隠すわけではない])。

これを解決するには、JSON.Netをインポートし、RestSharps jsonserializerをJSON.Nets RestSharp Serializerに設定し、ベースオブジェクトタイプを解析しないようにします(他のケースではベースタイプをシリアライズする必要がない限りその場合は戦略をやり直す必要があります)

関連する問題