使用来自另一个项目ABP的应用程序服务层.



我已经在我的ABP中添加了另一个项目,我需要访问应用程序服务方法,我已经为我的新项目创建了一个模块,这是代码

[DependsOn(
typeof(PrestamosApplicationModule), 
typeof(PrestamosEntityFrameworkCoreModule))]
public class ReportsApplicationModule : AbpModule
{
public ReportsApplicationModule(PrestamosEntityFrameworkCoreModule abpZeroTemplateEntityFrameworkCoreModule)
{
abpZeroTemplateEntityFrameworkCoreModule.SkipDbContextRegistration = true;
}

public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(typeof(ReportsApplicationModule).GetAssembly());
//ServiceCollectionRegistrar.Register(IocManager);
}
public override void PreInitialize()
{
base.PreInitialize();
}
}

程序.cs类

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureServices((hostContext, services) =>
{
var abpBootstrapper = AbpBootstrapper.Create<ReportsApplicationModule>();
services.AddSingleton(abpBootstrapper);
WindsorRegistrationHelper.CreateServiceProvider(abpBootstrapper.IocManager.IocContainer, services);
});
}

我的问题是当我想使用应用服务时

public ReporteClienteController(IClienteAppService clienteAppService)
{
_clienteAppService = clienteAppService;
}

我收到以下错误

InvalidOperationException:在尝试激活"DomiSys.Prestamos.Reports.Controllers.ReporteClienteController"时,无法解析类型"DomiSys.Prestamos.Generales.ClienteNs.IClienteAppService"的服务。 Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, bool isDefaultParameterRequired( lambda_method(Closure , IServiceProvider , object[] ( Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider+<>c__DisplayClass4_0.b__0(ControllerContext controllerContext( Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider+<>c__DisplayClass5_0.g__CreateController|0(ControllerContext controllerContext( Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isComplete( Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync(( Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isComplete( Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context( Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isComplete( Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync(( Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker( Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger( Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context( Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context(

出了什么问题?,如何正确配置模块以使用进样?

你能试着用PrestamosCoreModule替换PrestamosApplicationModule吗?

而且我想那部分代码不是必需的

.ConfigureServices((hostContext, services) =>
{
var abpBootstrapper = AbpBootstrapper.Create<ReportsApplicationModule>();
services.AddSingleton(abpBootstrapper);
WindsorRegistrationHelper.CreateServiceProvider(abpBootstrapper.IocManager.IocContainer, services);
});

相关内容

最新更新