Mono说int是List <dynamic> </dynamic>

时间:2014-10-05 17:40:46

标签: c# dynamic casting mono

我一直在努力将.NET代码转换为Mono。一切都很好,除了这部分:

enter image description here

如您所见,value是int。 Mono说int是List<dynamic>(看b的值)。 if语句然后转到else if部分,然后在第129行抛出异常,因为int不能转换为List。在.NET中,else部分被正确评估为false。有人可以帮忙吗?

这是一个可复制的代码:)

public static StringBuilder JsonValueToString(dynamic value, StringBuilder sb)
{
    if (value is JsonObject)
    {
        return value.BuildString(sb);
    }
    else if (value is List<dynamic>)
    {
        var xs = (List<dynamic>) value;
        sb.Append("[");
        for (int i = 0; i < xs.Count; ++i)
        {
            if (i > 0) sb.Append(", ");
            JsonValueToString(xs[i], sb);
        }
        sb.Append("]");
    }
    else
    {
        sb.Append(value.ToString());
        sb.Append(" ");
    }
    return sb;
}

//编辑:添加了更好的图片。

// EDIT2:添加了一个代码段。

1 个答案:

答案 0 :(得分:0)

我使用的是Mono 3.2.8。更新到Mono 3.10解决了这个问题。