2015-05-11 3 views
1

У меня есть эта проблема при десериализации сериализованного JSON в объект C# с использованием Newtonsoft JsonConvert. Я на платформе Linux и использую MonoDevelop.Отсутствует метод DeserializeObject в сборке .... в MonoDevelop + Newtonsoft

Я получаю следующее сообщение об ошибке в терминале:

Missing method DeserializeObject in assembly /home/deepalj/tmp/c#temp/SerializerTest/SerializerTest/bin/Debug/SerializerTest.exe, type Newtonsoft.Json.JsonConvert 

Ниже приводится код десериализации:

using System; 
using System.Web.Script.Serialization; 

using Newtonsoft.Json; 

    namespace SerializerTest 
    { 
     class MainClass 
     { 
      public static void Main (string[] args) 
      { 
       Payment p = Newtonsoft.Json.JsonConvert.DeserializeObject<Payment> ("{ id: 10, card: 'visa', amount: 1}"); 
       Console.WriteLine ("Card: "+p.card+"\n"+"Amount: "+p.amount); 
      } 
     } 
    } 

Ниже приводится Payment класс:

using System; 

namespace SerializerTest 
{ 
    public class Payment 
    { 
     public int id { get; set; } 
     public string card { get; set; } 
     public decimal amount { get; set; } 
    } 
} 

Любая помощь, чтобы исправить это было бы полезно.

Спасибо.

+0

Какая версия моно и Json.NET вы используете? – dbc

+1

Я понял. Мне нужно вручную добавить сборку .net. Я отвечу на это как ответ. – Deepal

ответ

2

Я понял решение. Вместо добавления Newtonsoft.Json в качестве пакета с Ссылки-> Редактировать ссылки-> Пакеты, я включил его .net-сборку вручную, используя Ссылки-> Редактировать ссылки ->. Сетчатая сборка. Я загрузил Newtonsoft json pakage here и добавил его Bin/Net45/Newtonsoft.Json.dll как сборку .net. Теперь он работает хорошо.

enter image description here

Смежные вопросы