У меня было такое же точное сообщение об ошибке, как и при попытке вызвать тот же метод.Убедитесь, что у вас есть конструктор по умолчанию (конструктор без параметров) для вашего целевого класса (ваш testContract
класс).
В C # ваш класс и конструктор по умолчанию будут выглядеть примерно так:
class testContract
{
string StringProperty;
int IntegerProperty;
public testContract()
{
// This is your default constructor. Make sure this exists.
// Do nothing here, or set default values for your properties
IntegerProperty = -1;
}
public testContract(string StringProperty, int IntegerProperty)
{
// You can have another constructor that accepts parameters too.
this.StringProperty = StringProperty;
this.IntegerProperty = IntegerProperty;
}
}
Когда JSON.net хочет десериализовать строку JSON в объект, он сначала инициализирует объект с помощью конструктора по умолчанию, а затем начинает заполнять его свойства.Если он не находит конструктор по умолчанию, он инициализирует объект, используя любой другой конструктор, который он может найти, но он передает null
всем параметрам.
В двух словах:либо у вас есть конструктор по умолчанию для вашего целевого класса, либо ваш конструктор не по умолчанию должен иметь возможность обрабатывать все нулевые параметры.