需要重新指令以进行模式实施,以将“处理器”从WebApp注入到NuGet中

时间:2019-04-23 11:27:58

标签: c# .net asp.net-core .net-core

我们目前正在开发内部的NuGet程序包,该程序包会将HTTP请求发送到另一个微服务。

这是我正在寻找的实现示例。

  • [NuGet程序包]具有一个中间件,该中间件已在[WebApp]启动中注册

  • [NuGet包]负责创建HTTP请求并将其发送到微服务

  • [WebApp]应该能够创建自己的IProcessor,该IProcessor必须实现Process()并添加适合的所有相关数据

  • [WebApp]应该{做某事}以“注册”它的IProcessor

  • [NuGet包]将在将请求发送到微服务之前调用已注册的IProcessor列表

在尊重Nuget封装的情况下,在.NET核心中实现此目标(最好是最后两项)的最佳方法是什么。

谢谢:)

1 个答案:

答案 0 :(得分:2)

首先,我认为这将使您清楚地知道它们全都是“ WebApp”。无论您使用的是一个,多个还是不使用NuGet软件包,项目引用等,最终,所有这些都只是WebApp流程中正在运行的代码。

这样,您可以像注册任何服务那样注册IProcessor实现:

services.AddScoped<IProcessor, WebAppProcessor>();

目前还不清楚您最终在这里做什么,因此,可以根据以下两种方法之一进行选择。如果只有一个IProcessor实现,则只需通过该类的构造函数将其直接注入到需要它的任何类中即可。该类也需要在Web应用程序的服务集合中注册,以便它通常参与依赖项注入过程。

如果实际上要使用多种实现,则过程大致相同,但是您需要注入IEnumerable<IProcessor>。然后,服务集合将注入IProcessor的所有注册实现。