相关疑难解决方法(0)

从模型验证中排除类型(示例DbGeography)以避免InsufficientExecutionStackException

更新:对于tl; dr版本跳到底部


我有一个非常简单的JsonConverter子类,我正在使用Web API:

public class DbGeographyJsonConverter : JsonConverter
{
    public override bool CanConvert(Type type)
    {
        return typeof(DbGeography).IsAssignableFrom(type);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        var value = (string)reader.Value;

        if (value.StartsWith("POINT", StringComparison.OrdinalIgnoreCase))
        {
            return DbGeography.PointFromText(value, DbGeography.DefaultCoordinateSystemId);
        }
        else if (value.StartsWith("POLYGON", StringComparison.OrdinalIgnoreCase))
        {
            return DbGeography.FromText(value, DbGeography.DefaultCoordinateSystemId);
        }
        else //We don't want to support anything else right now.
        {
            throw new ArgumentException();
        }
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        serializer.Serialize(writer, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net json.net asp.net-web-api

22
推荐指数
1
解决办法
3343
查看次数

标签 统计

asp.net ×1

asp.net-web-api ×1

c# ×1

json.net ×1