さまざまな質問を見てきましたが、これを実装する方法がわかりません。
現在、パブリック プロパティを持たないカスタム構造体があります。WebApi 経由で返される場合 (特別なシリアル化は行わず、カスタム構造体自体を返すだけです)、 object として返されます{}
。
public struct CustomStruct
{
private string myProperty;
...
public override string ToString()
{
return this.myProperty;
}
...
}
カスタム構造体自体は、次のようにシリアル化される親クラスのプロパティの型です。
{ "MyProp1":"value1","MyProp2":"value2","MyCustomStruct":{} }
カスタム構造体で ToString() をオーバーライドするときに、プライベート プロパティの 1 つを出力したいと考えています。オブジェクトを JSON オブジェクトとして JavaScript ランドに返すときに、同様の動作を実現できますか?
たとえば、私のプライベート プロパティは、「test」に設定された「myProperty」という文字列です。「MyProperty」というパブリック プロパティを追加すると、次の出力が得られます。
{ "MyProp1":"value1","MyProp2":"value2","MyCustomStruct":{ "MyProperty":"test" } }
私が本当に欲しいのは:
{ "MyProp1":"value1","MyProp2":"value2","MyCustomStruct":"test" }
これが理にかなっていることを願っています。
これは、あまり役に立たなかった関連する質問です。可能であれば JSON.NET の使用を避けたいと考えていますが、それが唯一の方法である場合はそれを使用します。