おそらくJSON.NETでシリアル化されたApiControllerで次のサンプルクラスを返したいのですが、クラス全体をjson文字列に変換するだけは避けたいです。
public class Report
{
[BsonId, JsonIgnore]
public ObjectId _id { get; set; }
public string name { get; set; }
public BsonDocument layout { get; set; }
}
今私はいくつかの方法を見てきましたが、これまでにうまくいったのは1つだけです.2番目のクラスを作成し、次のようにレイアウトプロパティをjson文字列に変換することで2つの間に手動でマップします:
layout.ToJson();
これはあまりエレガントではないようで、もっと良い方法があるかどうか疑問に思っています。次のアイデアはどれも、さまざまな理由で機能しません。
public class Report
{
[BsonId, JsonIgnore]
public ObjectId _id { get; set; }
public string name { get; set; }
[JsonIgnore]
public BsonDocument layout { get; set; }
[JsonProperty(PropertyName = "layout")]
public string layout2JSON()
{
return layout.ToJson();
}
}
または:
public class Report
{
[BsonId, JsonIgnore]
public ObjectId _id { get; set; }
public string name { get; set; }
public BsonDocument layout
{
get
{
return layout.ToJson();
}
set;
}
}
私は C# にかなり慣れていないので、明らかな答えを簡単に見逃す可能性があります。