JsonConvert.SerializeObjectを使用すると、かなり奇妙な動作が発生します。
私は次のような方法を持っています:
public class ServiceController : ApiController
{
public object GetJSONConnectedResponse(object input)
{
return JsonConvert.SerializeObject(input, Formatting.Indented,
new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize
});
}
public object GetMediaGallery(int? id)
{
try
{
return GetJSONConnectedResponse(GalleryBLL.GetMediaGallery(id));
}
catch (Exception exc)
{
LogBLL.LogException(exc, HttpContext.Current.Request.RawUrl);
return null;
}
}
}
ご覧のとおり、私はMVC Web APIをサービスアプリケーションとして使用しており、クライアント側でjavascriptを使用してajaxタイプのデータをクエリします。
GetMediaGalleryメソッドは、次の構造のホルダークラスを返します。
public class MediaGalleryHolder
{
public List<DB_Image> Images { get; set; }
public List<string> SpinFrames { get; set; }
public string FlyoverVideo { get; set; }
}
DB_Imagesは、ストアドプロシージャを呼び出すことにより、ビジネスロジックメソッドに入力する複雑なエンティティです。この複雑なエンティティに、2つのプロパティを追加しました。
public partial class DB_Image
{
public string FullPath { get; set; }
public string ThumbPath { get; set; }
}
何らかの理由で、私のローカルマシンでは、結果は正しくシリアル化されます(2つの追加プロパティの両方が追加されます)が、サーバーでは、これらの追加プロパティは結果に追加されません(データが入力されていることはわかっていますが、シリアル化されていません)。
これはある種のJSON.NETまたはMVCWebAPIのバージョン管理の問題ですか?これをトラブルシューティングまたは解決するにはどうすればよいですか?
どんな助けでも大歓迎です!
一番、
部族84