如何使用两个Web API项目设置解决方案?

时间:2019-02-08 01:15:19

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

我负责将Java应用程序移植到.Net平台。 我对C#和.Net很有经验,但是我从未从头开始构建类似的东西。

因此,此应用程序由两部分组成:

  • 框架::一个负责创建CRUD页面端点的小型框架。该框架使用“业务层”中的类作为模型,以便于构建页面。它基本上有一个FrameworkPage<T>类,我们使用类型T和一些重写来编写它。而且,该框架有其自己的某些端点。就像myapp/framework/FirstPage映射到framework/{pageName}控制器一样,在该控制器中,我们使用通用逻辑来检索该页面的数据。重要的是该框架具有自己的端点。
  • 业务层:使用上述框架的应用程序具有其业务类,并且还为非默认框架页面的页面提供了自己的自定义端点。

今天,在Java项目中,这两个仅位于不同的文件夹中。将来,我们希望在任何需要的地方重用该框架,因此保持其与任何业务逻辑的独立性很重要。为此,在.Net平台中,我认为将这两个放在我的解决方案中的单独项目中会很有趣。然后,将来很容易将其分离,甚至可以将其编译为dll以用于其他项目。

这是正确的方法吗?如果是这样,既然有两个Web API应用程序,如何使之成为可能?据我对.Net项目配置的了解,我只有一个启动项目(已部署的项目)。我可以为这些人设置多个启动配置,但只能将它们作为单独的应用程序启动:localhost:XXXX/myapplocalhost:YYYY/framework。我需要将框架“放入”应用程序内部:localhost:XXX/myapp/framework/framework-endpoint

谢谢!

1 个答案:

答案 0 :(得分:0)

使用AddApplicationPart()找到了一个适合我的解决方案。 基本上,在我的Startup.cs的{​​{1}}上,将服务配置为:

BusinessLayerProject

有了这个,如果我的框架控制器具有类似using Framework.Controllers; // .... services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddApplicationPart(typeof(FrameworkController1).Assembly) .AddApplicationPart(typeof(FrameworkController2).Assembly) // ... .AddControllersAsServices(); 的路由,则在部署framework/controller1时可以访问它