0
mahuwei created
Maui blazor 项目: program:
public static class MauiProgram {
public static MauiApp CreateMauiApp() {
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts => {
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
builder.Services.AddMauiBlazorWebView();
ConfigureConfiguration(builder);
builder.Services.AddApplication<KkdQueuingServiceMauiModule>(options => {
options.Services.ReplaceConfiguration(builder.Configuration);
options.UseAutofac();
});
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
builder.Logging.AddDebug();
#endif
var app = builder.Build();
var abpApplication = app.Services.GetRequiredService<IAbpApplicationWithExternalServiceProvider>();
abpApplication.Initialize(app.Services);
return app;
}
private static void ConfigureConfiguration(MauiAppBuilder builder) {
var assembly = typeof(App).GetTypeInfo().Assembly;
builder.Configuration.AddJsonFile(new EmbeddedFileProvider(assembly), "appsettings.json", false, false);
builder.Configuration.AddJsonFile(new EmbeddedFileProvider(assembly), "appsettings.secrets.json", true, false);
}
}
module:
[DependsOn(typeof(AbpAutofacModule),
typeof(AbpAutoMapperModule),
typeof(AbpAspNetCoreMvcClientCommonModule),
typeof(AbpAspNetCoreComponentsWebModule),
typeof(AbpIdentityProDomainSharedModule),
typeof(AbpIdentityHttpApiClientModule),
typeof(QueuingServiceHttpApiClientModule),
typeof(AbpHttpClientIdentityModelModule))]
public class KkdQueuingServiceMauiModule : AbpModule {
public override void ConfigureServices(ServiceConfigurationContext context) {
context.Services.AddBlazorWebView();
context.Services.AddTransient<IRemoteServiceHttpClientAuthenticator, KkdRemoteServiceHttpClientAuthenticator>();
ConfigureAutoMapper();
base.ConfigureServices(context);
}
private void ConfigureAutoMapper() {
Configure<AbpAutoMapperOptions>(options => {
options.AddMaps<KkdQueuingServiceMauiModule>();
});
}
}
调用:
@page "/counter"
@using Kkd.QueuingService.Commodities
@using Volo.Abp.DependencyInjection
@inject ICommoditiesAppService CommoditiesAppService
@inject IAbpLazyServiceProvider LazyServiceProvider
@code {
private int _currentCount;
private void IncrementCount() {
_currentCount++;
}
private async Task GetCommoditiesAsync() {
try {
var tenantId = new Guid("3a1a22c2-ccbb-3f27-da9d-6e69edade96b");
var getCommoditiesInput = new GetCommoditiesInput();
// 出错代码
var commodities = await CommoditiesAppService.GetListByTenantAsync(tenantId, getCommoditiesInput);
Console.WriteLine($"Commodities count: {commodities.Count}");
}
catch (Exception ex) {
Console.WriteLine($"Error fetching commodities: {ex.Message}");
}
}
}
- Exception message and full stack trace:
- System.NullReferenceException HResult=0x80004003 Message=Object reference not set to an instance of an object. Source=Volo.Abp.Http.Client StackTrace: 在 Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.get_ClientOptions() 在 Volo.Abp.Http.Client.ClientProxying\ClientProxyBase.cs 中: 第 44 行
- Steps to reproduce the issue:
Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
11 Answer(s)
-
0
对。
DependsOn(typeof(AbpAutofacModule), typeof(AbpAutoMapperModule), typeof(AbpAspNetCoreMvcClientCommonModule), typeof(AbpAspNetCoreComponentsWebModule), typeof(AbpIdentityProDomainSharedModule), typeof(AbpIdentityHttpApiClientModule), typeof(QueuingServiceHttpApiClientModule), typeof(AbpHttpClientIdentityModelModule))] public class KkdQueuingServiceMauiModule : AbpModule {Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
hi
Update
MauiProgramto add.ConfigureContainer(new AbpAutofacServiceProviderFactory(new Autofac.ContainerBuilder()));will fix theNullReferenceExceptionnamespace Kkd.QueuingService.Maui; public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }) .ConfigureContainer(new AbpAutofacServiceProviderFactory(new Autofac.ContainerBuilder()));Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)


