Во время работы над простым ПО Blazor C у меня возникла проблема, которую я не могу решить, поэтому я надеюсь, что кто-то может помочь мне сделать это правильно ?. Хорошо, давайте объясним шаг за шагом. В VS2019 я создал следующее решение:
![enter image description here](https://i.stack.imgur.com/uAnQa.png)
• WebClient: приложение на стороне сервера Blazor, содержащее пользовательский интерфейс и логику презентации c.
• Домен: является. NET Стандартом 2.1, содержащим логины домена c для торгового автомата.
• Api: используется для получения и сохранения состояния торгового автомата.
![enter image description here](https://i.stack.imgur.com/EwGOT.png)
В проекте «Домен» 2 интересующих класса - это класс MyVendingMachine (который является сущностью) и класс Money (который является объектом значения). Итак, зная это, давайте сначала объясним вариант использования простого проекта PO C, показав соответствующий пользовательский интерфейс:
![enter image description here](https://i.stack.imgur.com/K1GqL.png)
Итак, при запуске на экране появляется простой экран, и пользователь может ввести немного денег (ограничено 5 € -10 € -20 € -50 € банкнотами). Когда пользователь вводит деньги, «Деньги введены» показывает сумму денег, которую пользователь ввел, и затем пользователь может «купить закуску», которая добавит введенную сумму в торговый автомат. Например, пользователь вводит 5 €, пользовательский интерфейс будет обновляться следующим образом:
![enter image description here](https://i.stack.imgur.com/rAzOb.png)
, затем нажимает кнопку «Купить закуску», затем пользовательский интерфейс обновляется следующим образом. :
![enter image description here](https://i.stack.imgur.com/LDzqv.png)
Существует также другой вариант использования «Возврат денег», который возвращает введенные деньги клиенту. Это все отлично работает. Но другой вариант использования PO C - сохранение и загрузка текущего состояния торгового автомата из хранилища через API. Этот API довольно прост и возвращает вручную экземпляр торгового автомата и 50 € начальных денег внутри от контроллера API, как показано ниже:
![enter image description here](https://i.stack.imgur.com/R0bDN.png)
Проще говоря, когда в конечной точке API get git мы создаем торговый автомат, удваиваем идентификатор запроса (просто для проверки, это происходит из API) и добавляем 50 € в качестве начального состояния для денег внутри. Когда мы проверяем этот запрос в Почтальоне, мы получаем следующий ответ:
![enter image description here](https://i.stack.imgur.com/Kpcyd.png)
Но при вызове из моего класса обслуживания API (который является частью следующий проект веб-приложения): ![enter image description here](https://i.stack.imgur.com/eNSwa.png)
Идентификатор правильный (поэтому мы знаем, что он был десериализирован из API), но MoneyInside не был правильно сериализован со значением получено из API (50 €). Таким образом, FiftyEuroCount в этом случае должен быть установлен в 1, что не является (значение: 0). Любая подсказка? Для полноты, классы MyVendingMachine и Money:
![enter image description here](https://i.stack.imgur.com/Kre4n.png)
![enter image description here](https://i.stack.imgur.com/qsmYY.png)
Kr, Эммануэль Нюйттенс.