OData WebApi .net-集合未序列化

时间:2019-03-27 11:45:40

标签: c# json asp.net-web-api2 odata observablecollection

我已经使用Microsoft.AspNet.OData(版本7.1.0)实现了REST API。该业务模型包含一个ObservableCollection,并且在使用ODataController时未进行序列化。

如果我使用Newtonsoft序列化业务模型,则所有属性都将按预期序列化。

我一直在寻找自定义序列化的方法,但找不到解决方法。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
        config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings();

        config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
        config.Formatters.JsonFormatter.MaxDepth = 2048;
        config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

        ODataModelBuilder builder = new ODataConventionModelBuilder();
        var entitySet = builder.EntitySet<Product>("Products");
        entitySet.EntityType.HasKey(entity => entity.RelationId);

        config.UseCustomContainerBuilder(() => new MyContainerBuilder());

        config.MapODataServiceRoute(
            routeName: "odata",
            routePrefix: null,
            model: builder.GetEdmModel());
    }
}

我的问题是:是否可以通过更改某些SerializerSettings使其起作用,还是必须自定义序列化?

0 个答案:

没有答案