Задать вопрос
  • Какой лучший способ передать объект с приватными полями?

    NikFaraday
    @NikFaraday Автор вопроса
    Aaseven, публичные поля и свойства предоставляют доступ для открытого взаимодействия с объектом. Но иногда, внутреннее состояние объекта является просто результатом взаимодействия.

    Это как переменная цикла. Публично, вы можете сказать for (int i = 0; ... ), но её конечный вид будет зависеть от количества проходов цикла. С объектами (Тем более, в моём случае) всё на много сложнее, т.к. есть очень большая иерархия
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    Дмитрий Беляев,

    С другой стороны, те кто начинают с Python почти всегда сливаются в последствии в ВУЗах, ибо не осиливают программирование на других языках, требуется сначала вычистить мозг от того подхода, которым готовили к ЕГЭ


    Хорошо сказано, полностью поддерживаю
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    DevMan, я это так же уточнил
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    DevMan, это отлично, но я ничего не говорил вам читать. Опять же, я уточнил в ответе, что это моё мнение. Лично я считаю, что человеку лучше начинать изучать C++ чем Python
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    DevMan, да, тут согласен. C++ более ценен, т.к. позволяет погрузиться в понимание работы памяти и управления ею.
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    VasiliyGubenkov, пока прочитайте о программировании. Питон это всего лишь язык программирования, инструмент реализации. Вы должно в первую очередь думать как программист, уметь программировать, а не знать язык. Так что начните с какого-небудь ООП, паттерны проектирования и т.д.
    Написано
  • Что начать читать?

    NikFaraday
    @NikFaraday
    DevMan, потому что на C++ есть ООП что даёт большое пространство для изучения. Те же паттерны, СДА, http и сетевые запросы, всё можно на C++ выучить и много другого.
    Написано
  • Как сделать что бы при уменьшении длины страницы длина блока уменьшалась?

    NikFaraday
    @NikFaraday
    Даниил Секретов, процентное соотношение определяется по отношению к родительскому компоненту, значит у вас где-то проблема с компонентами верхнего уровня
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    Александр, не поверите, 8.0) Я их по старинке не маркаю required
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, ещё додам

    Это мне вообще в наследство досталось) Предыдущие разработчики плохо понимали понятия слабо связанного кода, по этому тут очень много косяков есть. Пока не хочу что-то менять, т.к. боюсь, что всё развалится просто.

    Как реализацию бизнес задачи я сделаю метод для Export'а и Import'а объекта вручную. Наверно придётся писать свой сериализатор на базе System.Reflection
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, проблема в том, что не должно быть публичных конструкторов. Решение проблемы из самого вопроса я нашёл, но это немного рушит бизнес логику приложения. Все компоненты системного объекта должны быть приватными, а сам объект строится за счёт реализации паттерна Builder, т.е. он имеет доступ к приватным конструкторам и может полностью воссоздать требуемый сложный объект по установленным правилам (Реализация Strategy)
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, короче, дело было так...

    Я попробовал использовать библиотеку Utf8Json для сериализации/десериализации. Я попытался сделать сериализацию через byte[] закинув этой всё в файл при помощи BinaryWriter. При чтении через BinaryReader я получил аналогичный byte[], который должен был восстановить исходный объект, т.к. количество байтов, их последовательность и значения совпадали (Что логично предположить, что объект нормально прочитался в точности 1 в 1), но при попытке десериализации я получил ошибку:
    System.InvalidOperationException: 'generated serializer for Document does not support deserialize.'


    Вот сам код сериализации:
    if (string.IsNullOrWhiteSpace(path))
    {
        path = document.Metadata.SavedAt;
    }
    
    string fileName = document.Metadata.DocumentName;
    string fileExtension = document.Metadata.Extension;
    string fullFileName = $"{fileName}.{fileExtension}";
    
    byte[] documentBytes = JsonSerializer.Serialize(document);
    
    try
    {
        using (FileStream fileStream = File.Create(fullFileName))
        using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
        {
            binaryWriter.Write(documentBytes);
        }
    }
    catch (Exception ex)
    {
        return ResponseService<string>.Error(ex.ToString());
    }
    return ResponseService<string>.Ok(fullFileName);


    Вот десериализация:
    byte[] readBytes = new byte[0];
    
    using (FileStream fileStream = new FileStream(path, FileMode.Open))
    using (BinaryReader binaryReader = new BinaryReader(fileStream))
    {
        readBytes = binaryReader.ReadBytes((int)binaryReader.BaseStream.Length);
    }
    
    try
    {
        Document result = JsonSerializer.Deserialize<Document>(readBytes);
        return ResponseService<Document>.Ok(result);
    }
    catch (Exception ex)
    {
        return ResponseService<Document>.Error(ex.ToString());
    }


    По этому посмею предположить, что проблема из-за запрета доступа к свойствам. Тут может быть несколько объяснений этой теории. System.Json мне прямо сказала, что для таких действий нужен public конструктор без параметров, а NewtonSoft.Json просто кидало ошибку при попытке чтения символов (Что до сих пор остаётся под вопросом). Далее попробую сделать некие изменения в коде, если всё будет работать, выставлю остаточный ответ
    Написано
  • Обойти CORS запрос?

    NikFaraday
    @NikFaraday
    В придачу, тут больше играет не политика CORS на стороне сервера (Вашего), а не стороне клиента (я.маркет)
    Написано
  • Обойти CORS запрос?

    NikFaraday
    @NikFaraday
    Так вы думаете, что такие политики безопасности сделаны просто так, если любом JS любитель может прийти и прописать скрипты из страницы?)
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, может ли это как-то быть связано с тем, что в классов нет публичных конструкторов и есть свойства private init?
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    #, к сожалению да, т.к. это часть дата-модели
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    #, та и курю) Пробовал ставить другой конвертер (Utf8Json) но результат примерно тот же. А NewtonJson ругается на... Пробел? ¯\_(ツ)_/¯
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, какие другие конвертеры вы можете посоветовать? Может это поможет решить проблему
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    VoidVolker, я делал дебаг, оно просто отваливается на строке DeserializeObject. Посмотрите в комментариях под самим постом, я так написал несколько сообщений, может они могут вам помочь мне )
    Написано
  • Почему не десериализуется JSON объект при помощи Newtonsoft.Json?

    NikFaraday
    @NikFaraday Автор вопроса
    Уже смотрел через него, там тоже вроде бы как порядок. Конкретно часть, не которой ошибка выглят вот так в QuickType:

    public partial class CoverPage
    {
        [JsonProperty("Title")]
        public Content Title { get; set; }
    }
    Написано