Есть класс в котором одно из свойств это объект из библиотеки dll. Суть в том, что при вызове метода JsonConvert.DeserializeObject вызывается исключение "Unable to find a default constructor to use for type xNet.CookieDictionary. Path 'cookies.remixlang', line 1, position 39." Как мне спарсить строку в объект? Код, который используется:
class Globals
{
public static Globals info = new Globals();
public bool isAuth = false;
public CookieDictionary cookies = null;//из xNet.dll
}
Сначала сохраняю в файл:
File.WriteAllText(save_file, JsonConvert.SerializeObject(Globals.info));
Пытаюсь спарсить:
Globals.info = JsonConvert.DeserializeObject<Globals>(File.ReadAllText(save_file));//Исключение тут
Собственно что мне делать как мне быть?
На сколько я понимаю, вы для работы с JSON используете библиотеку Newtonsoft.Json (JSON.NET). Для десериализации ей во многих случаях необходимо, чтобы десериализуемые типы имели конструктор без параметров. У класса xNet.CookieDictionary
его, очевидно нету, поэтому выбрасывается данное исключение.
Если данный класс не является sealed
-классом и имеет public
или protected
конструктор, вы можете его унаследовать, и создать открытый конструктор по-умолчанию без параметров:
class MyCookieDictionary : CookieDictionary
{
// Здесь, возможно, потребуется передать некоторые параметры по-умолчанию
public MyCookieDictionary() : base() { }
}
class Globals
{
...
public MyCookieDictionary cookies = null;
}
Другой вариант заключается в том, чтобы для хранения сериализуемых данных использовать только простые структуры и стандартные типы, вроде System.Collections.Generic.Dictionary
вместо xNet.CookieDictionary
, с которыми JSON.NET гарантированно умеет работать, а перед сериализацией и после десериализации так или иначе преобразовать данные к необходимым типам.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, есть капча при обновлении страницы появляеться новая
При переборе файлов в папках есть одна проблема, это скрытые файлы (переберает по ним тоже), как можно обойти скрытые папки?
Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state