我正在try 为依赖项注入注册一个类,但是当我试图通过我的构造函数注入它时,我得到了以下错误:
System.MissingMethodException:‘没有为类型’MauiClient.MainPage‘定义无参数构造函数.’
我在主程序文件中注册服务,如下所示:
MainProgram.cs:
using Accounting.Shared.Services;
using Microsoft.Extensions.Logging;
namespace MauiClient
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Services.AddTransient<ITestService>(s =>
{
var httpClient = new HttpClient();
var token = "";
return new TestService(httpClient, token);
});
return builder.Build();
}
}
}
我的实际服务类: TestService.cs:
namespace Accounting.Shared.Services;
public interface ITestService
{
}
public class TestService : ITestService
{
private HttpClient _httpClient;
private string _token;
public TestService(HttpClient httpClient, string token)
{
_httpClient = httpClient;
_token = token;
}
}
最后,在MainPage.xaml.cs中,我try 依赖项注入:
namespace MauiClient;
using Accounting.Shared.Services;
public partial class MainPage : ContentPage
{
int count = 0;
private ITestService _testService;
public MainPage(ITestService testService)
{
InitializeComponent();
_testService = testService;
}
private void OnCounterClicked(object sender, EventArgs e)
{
}
}
我不明白为什么它不能将其作为参数传递.任何帮助都将不胜感激.