これに対する2つの解決策を見つけました。最初の最も簡単な実装は、IEnumerables、ICollections を List 型に変更することです。WebAPI はこのオブジェクトをシリアル化できますが、インターフェイス タイプをシリアル化することはできません。
public class Store
{
[StringLength(5)]
public string Zip5 { get; set; }
public virtual List<StoreReport> StoreReports { get; set; } //use a list here
}
もう 1 つのオプションは、ネイティブ JSON シリアライザーを使用せず、WebApi 構成の Register メソッドでこのオーバーライドを実行することです。
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.Formatters.Remove(config.Formatters.XmlFormatter);