Каждый параметр в конструкторе десериализации по типу должен быть привязан к свойству или полю объекта при десериализациC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Каждый параметр в конструкторе десериализации по типу должен быть привязан к свойству или полю объекта при десериализаци

Сообщение Anonymous »

У меня есть следующие простые классы:

Код: Выделить всё

public abstract class GitObject
{
public Repository Repository { get; set; }
public abstract string Serialize();
public abstract void Deserialize(string data);

public class Blob : GitObject
{
public string Data { get; set; }

public Blob(Repository repository, string data = null)
{
if (data != null) Data = File.ReadAllText(data);
Repository = repository;
}
public override string Serialize()
{
return JsonSerializer.Serialize(this);
}
public override void Deserialize(string data)
{
Blob blobData = JsonSerializer.Deserialize(data);
}
}
}
Я знаю, что, вероятно, есть МНОГО возможностей для улучшения (и я рад слышать об этом). Однако метод Deserialize выдает ошибку

Код: Выделить всё

Each parameter in the deserialization constructor on type 'CustomGit.Repository'
must bind to an object property or field on deserialization. Each parameter name must
match with a property or field on the object. The match can be case-insensitive.
Для проверки того, работает ли этот метод должным образом, я использую этот подход (который также выдает ошибку)

Код: Выделить всё

FileInfo file = new FileInfo(Path.Combine(repository.GitDirectory.FullName, "code.txt"));

GitObject.Blob firstBlob = new GitObject.Blob(repository, file.FullName);
var json = firstBlob.Serialize();

GitObject.Blob secondBlob = new GitObject.Blob(repository);
secondBlob.Deserialize(json);
Что я делаю не так и что мне вообще следует изменить?

Подробнее здесь: https://stackoverflow.com/questions/720 ... -an-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»