在PCL中使用Newtonsoft.Json时出现TypeLoadException

时间:2013-12-25 22:50:39

标签: c# .net json.net portable-class-library

我正面临阻塞问题...... 我有一个项目(iOS,在这种情况下),引用PCL(由我制作),它本身引用了Newtonsoft.Json便携版

App - >我的PCL - > Newtonsoft.Json

Everything编译得很好,但在运行时,当使用我的PCL调用Newtonsoft.Json的方法时,我得到一个TypeLoadException

实施例: 一个简单的PCL,引用Newtonsoft.Json Portable,只有这样一个类:

public class MyClass {
    public int Test() {
        var json = @"{""t"":16,""s"":""test""}";
        var o = JObject.Parse(json);
        return o["t"].Value<int>();
    }
}

一个简单的应用程序,带有一个按钮,带有此事件处理程序:

partial void Test() {
    var c = new MyClass();
    var i = c.Test();
    new UIAlertView("", i.ToString(), null, "Close").Show();
}

在点击“var i = c.Test();”行时点击按钮时出现TypeLoadException !

甚至更奇怪,当替换它时:

return o["t"].Value<int>();

用这个:

return (int)o["t"];

我没有得到TypeLoadException,而是一个MissingMemberException,并显示以下消息:

  

缺少方法Newtonsoft.Json.Linq.JToken :: op_Explicit(JToken)in   部件   /Users/Ingham/Projects/TestPCL-iOS/TestPCL-iOS/bin/iPhoneSimulator/Debug/Newtonsoft.Json.dll,   在程序集中引用   /Users/Ingham/Projects/TestPCL-iOS/TestPCL/bin/Debug/TestPCL.dll

我真的看不出我做错了什么......

我为我的PCL尝试了很多可能的配置文件组合,但没有任何效果......

有什么想法吗? 提前谢谢!

您可以在此处下载示例项目(Xamarin.iOS): https://www.dropbox.com/s/lsclrg5d1cor1dk/TestPCL.zip

0 个答案:

没有答案