使用 Newtonsoft 的 Monotouch 不起作用 [英] Monotouch with Newtonsoft not working

查看:27
本文介绍了使用 Newtonsoft 的 Monotouch 不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 Monotouch/iOS 开发非常陌生.我正在使用

I am very new to Monotouch/iOS development. I'm using

========== 
MonoDevelop 2.8.8.4 
Installation UUID: 0d3db625-7df9-4282-9aa6-177c25a46d07 
Runtime: 
        Mono 2.10.9 (tarball Tue Mar 20 15:31:37 EDT 2012) 
        GTK 2.24.10 
        GTK# (2.12.0.0) 
Mono for Android not installed 
Apple Developer Tools: 
         Xcode 4.2.1 (834) 
         Build 4D502 
Monotouch: 5.2.10 (Evaluation) 
========== 

我正在尝试使用 Newtonsoft 3.5 all 将对象序列化为 json 字符串.

I am trying to serialize object to json string using Newtonsoft 3.5 all.

非常简单的代码但不起作用.. 任何人都可以帮我...

Very simple code but not working.. Can anybody can please help me ...

partial void Action_Clicked (MonoTouch.Foundation.NSObject sender) 
{ 
    myDTO test = new myDTO(); 
    string teststring = ObjToJSON(test); 
} 

public string ObjToJSON(myDTO oObject)   //Old function name is ObjToJSON_WithWrapper 
{ 
    string sJSON = ""; 
    sJSON = Newtonsoft.Json.JsonConvert.SerializeObject(oObject); 
    return sJSON; 
} 

public myDTO JSONToObj(String JSONString) //Old function name is JSONToObjNew 
{ 
    myDTO deseri =  JsonConvert.DeserializeObject<myDTO>(JSONString); 
    return deseri; 
} 

public class myDTO 
{ 
    public myDTO() 
    { 
    } 

    public string StringObject {get; set;} 
} 

以上是我的简单测试代码,但在运行时出现错误 Newtonsoft.Json.JsonConvert.SerializeObject(oObject);

Above is my simple test code but it's giving me error when it's run Newtonsoft.Json.JsonConvert.SerializeObject(oObject);

***  ERROR*** 

{System.TypeLoadException: A type load exception has occurred.  
    at Newtonsoft.Json.Utilities.ThreadSafeStore`2[System.Type,System.Type].AddValue System.Type key) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Utilities.ThreadSafeStore`2[System.Type,System.Type].Get (System.Type key) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonTypeReflector.GetAssociatedMetadataType (System.Type type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonTypeReflector.GetAttribute[JsonContainerAttribute] (System.Type type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonTypeReflector.GetAttribute[JsonContainerAttribute] (ICustomAttributeProvider attributeProvider) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Utilities.ThreadSafeStore`2[System.Reflection.ICustomAttributeProvider,Newtonsoft.Json.JsonContainerAttribute].AddValue (ICustomAttributeProvider key) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Utilities.ThreadSafeStore`2[System.Reflection.ICustomAttributeProvider,Newtonsoft.Json.JsonContainerAttribute].Get (ICustomAttributeProvider key) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.CachedAttributeGetter`1[Newtonsoft.Json.JsonContainerAttribute].GetAttribute (ICustomAttributeProvider type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonTypeReflector.GetJsonContainerAttribute (System.Type type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonTypeReflector.GetJsonObjectAttribute (System.Type type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract (System.Type objectType) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract (System.Type type) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe (System.Object value) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.JsonSerializer.SerializeInternal (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.JsonSerializer.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <filename unknown>:0  
    at Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value) [0x00000] in <filename unknown>:0  
    at JSONTest1.JSONTest1ViewController.ObjToJSON (JSONTest1.myDTO oObject) [0x00006] in /Users/developer/Projects/JSONTest1/JSONTest1/JSONTest1ViewController.cs:61  
    at JSONTest1.JSONTest1ViewController.Action_Clicked (MonoTouch.Foundation.NSObject sender) [0x00006] in /Users/developer/Projects/JSONTest1/JSONTest1/JSONTest1ViewController.cs:52    at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)  
    at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00042] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29  
    at JSONTest1.Application.Main (System.String[] args) [0x00000] in /Users/developer/Projects/JSONTest1/JSONTest1/Main.cs:17 } 

推荐答案

您需要此版本的 Newtonsoft for MonoTouch:

You need this version of Newtonsoft for MonoTouch:

https://github.com/ayoung/Newtonsoft.Json

这篇关于使用 Newtonsoft 的 Monotouch 不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆