Создал класс однонаправленного связного списка
public class List<T>
where T : class, IComparable<T>
{
/// <summary>
/// Максимально допустимое количество элементво в хранилище
/// </summary>
private const int size = 10;
/// <summary>
/// Хранилище элементов
/// </summary>
protected readonly Element[] storage;
/*методы для работы с элементами*/
public void Upload()
{
var settings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
NullValueHandling = NullValueHandling.Ignore,
Formatting = Formatting.Indented
};
using (var writer = new StreamWriter(fileName, false))
writer.WriteLine(
JsonConvert.SerializeObject(this, settings));
}
protected class Element : BaseElement<T, int>
{ }
}
/// <summary>
/// Базовый класс для элементов структур данных
/// </summary>
/// <typeparam name="T">Тип данных информационной части</typeparam>
/// <typeparam name="N">Тип данных ссылки</typeparam>
public class BaseElement<T, N>
where T : class
{
/// <summary>
/// Информационная часть элемента структуры данных
/// </summary>
public T Inf { get; set; }
/// <summary>
/// Ссылка на следующий элемент
/// </summary>
public N Next { get; set; }
}
Возникла проблема при сериализации созданного заполненного экземпляра. В файл записывается только значение одного из свойств(имеющее только get-ер). Подскажите, пожалуйста, как правильно реализовать сериализацию.
По умолчанию метод JsonConvert.SerializeObject
сериализует все открытые экземплярные поля и свойства класса, именно по этой причине ваше поле storage
, имеющее модификатор доступа protected
не попадает в результирующий json-файл.
Это поведение сериализатора Json.NET можно изменить, установив для вашего класса атрибут
[JsonObject(MemberSerialization.Fields)]
Теперь кроме public полей и свойств будут сериализованы все non-public (protected, internal, ...) поля и свойства.
Кстати, исключить ненужные для сериализации члены класса можно с помощью атрибутов [JsonIgnore]
или [NonSerialized]
(только для полей).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть программа на WinForms которая в числе прочего формирует небольшой отчет в txt форматеС этим все просто, но возникла необходимость сохранять...
Работал работал себе SOAP под IIS 6 на NET 20, и спустя последнюю неделю начал выдавать такую ошибку (для запроса Soap 1