MissingMethodException: невозможно динамически создать экземпляр типа с помощью Blazor и внедрения зависимостей.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 MissingMethodException: невозможно динамически создать экземпляр типа с помощью Blazor и внедрения зависимостей.

Сообщение Гость »


Я столкнулся с «MissingMethodException» MissingMethodException: невозможно динамически создать экземпляр типа «Blazor.Pages.Account.Register». Причина: в моем серверном приложении Blazor не определен конструктор без параметров при попытке использовать внедрение зависимостей с конструктором без параметров. Вот что я пробовал на данный момент:

Я создал UserService.cs

с использованием Blazor.API.Model; пространство имен Blazor.Services { публичный класс UserService { частный HttpClient только для чтения _httpClient; общественный UserService (HttpClient httpClient) { _httpClient = httpClient; } общедоступная асинхронная задача RegisterAsync (RegisterModel RegisterModel) { пытаться { вар ответ = ждут _httpClient.PostAsJsonAsync("/register", RegisterModel); если (ответ.IsSuccessStatusCode) { вернуть истину; } еще { вернуть ложь; } } ловить { вернуть ложь; } } } } Я обновил файл program.cs

var builder = WebApplication.CreateBuilder(args); // Добавляем сервисы в контейнер. builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddScoped(s => { вар httpClient = новый HttpClient { BaseAddress = новый Uri(builder.Configuration.GetSection("ApiBaseUrl").Value) }; вернуть httpClient; }); builder.Services.AddHttpClient(); builder.Services.AddScoped(); вар приложение = builder.Build(); Также я получаю сообщение об ошибке «Предупреждение CS8604. Возможен нулевой ссылочный аргумент для параметра 'uriString' в 'Uri.Uri(string uriString)'» при наведении указателя мыши на builder.Configuration.GetSection( "ApiBaseUrl").Value

и Мой регистр.razor.cs

с использованием Blazor.API.Model; использование Blazor.Services; пространство имен Blazor.Pages.Account { Регистр публичного частичного класса { частный UserService UserService {получить; набор; } частный bool isRegistering = ложь; частная регистрация boolSuccessful = false; частная RegisterModel RegisterModel = новая RegisterModel (); общедоступный реестр (UserService userService) { ПользовательскаяСервис = ПользовательскаяСервис; } частный асинхронный дескриптор задачи HandleValidSubmit() { // Начинаем процесс регистрации isRegistering = правда; //отправляем запрос на регистрацию на сервер bool RegistrationResult = ждут UserService.RegisterAsync(registerModel); // Обновляем состояние регистрации RegistrationSuccessful = RegistrationResult; // Остановить процесс регистрации isRegistering = ложь; } } } Однако при переходе к этому компоненту Register я получаю ошибку MissingMethodException. Я также пытался добавить конструктор без параметров, но в результате появилось предупреждение «Свойство, не допускающее значения NULL, должно содержать значение, отличное от NULL».

Как решить эту проблему и правильно использовать внедрение зависимостей с компонентами Blazor, имеющими конструкторы без параметров?

вот мой регистр.razor

@page "/register" Зарегистрироваться Имя Фамилия Электронная почта Номер телефона Пароль @if (регистрация) { Регистрация... } иначе, если (регистрация прошла успешно) { Регистрация прошла успешно } еще { Зарегистрироваться } У вас уже есть аккаунт? Войдите сюда
@код { }
и мой appSetting.json

{ "Ведение журнала": { "LogLevel": { «По умолчанию»: «Информация», «Microsoft.AspNetCore»: «Предупреждение» } }, "AllowedHosts": "*", "ApiBaseUrl": "https://localhost:44330/" } Я новичок в приложениях Blazor Server и в настоящее время пытаюсь научиться подключаться к API-интерфейсам Blazor Server и взаимодействовать с ними. В частности, я работаю над реализацией функций регистрации пользователей и входа в систему. Однако я столкнулся с трудностями при настройке HttpClient и правильном порядке процесса регистрации, как описано в этом сообщении.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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