使用JsonConvert的序列化问题.SerializeObject(服务器上缺少属性)



我在使用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-type的数据。

GetMediaGallery方法返回具有以下结构的holder类:

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; }
}

出于某种原因,在我的本地机器上,结果会正确序列化(同时添加两个额外的属性),但在服务器上,这些额外的属性不会添加到结果中(我知道它们已填充,但从未序列化)。

这是某种JSON吗。NET或MVC Web API版本控制问题,我如何着手解决此问题?

如有任何帮助,我们将不胜感激!

最佳,

tribe84

您尝试过在每个类上使用注释吗?您可以尝试添加[Serializable]

[Serializable] 
public partial class DB_Image
{
public string FullPath { get; set; }
public string ThumbPath { get; set; }
}
[Serializable]
public class MediaGalleryHolder
{
public List<DB_Image> Images { get; set; }
public List<string> SpinFrames { get; set; }
public string FlyoverVideo { get; set; }
}

希望它能有所帮助!

相关内容

  • 没有找到相关文章

最新更新