2014-10-05 34 views
4

我一直在努力將.NET代碼轉換爲單聲道。一切工作正常,除了這一部分:單聲道說INT是名單<dynamic>

enter image description here

正如你看到的,value爲int。單聲道說int是List<dynamic>(看價值b)。 if語句然後轉到else if部分,然後在129行拋出異常,因爲int不能被轉換爲List。在.NET中,如果其他部分正確評估爲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:添加了一個代碼片段。

+0

您定位的是哪個版本的Mono? – 2014-10-05 17:44:01

+0

@HighCore單聲道3.2.8。 – 2014-10-05 17:46:28

+1

出於興趣確實值得列表'按預期工作嗎? – Chris 2014-10-05 17:47:34

回答

0

我使用的是單聲道3.2.8。更新到單聲道3.10解決了這個問題。