在单独的文件

时间:2018-02-18 05:44:49

标签: asp.net asp.net-mvc asp.net-web-api

我在Visual Studio中发布Web API时遇到问题。

在VS中,当我发布Web API时,它将作为dll发布,当我们有多个控制器时,它将把它们聚合成一个dll。

但是我的项目可以有不同的控制器,例如:

Android.cs
CoWorker.cs
TelegramBot.cs

当我发布项目时,我想在分离的DLL中发布控制器,因为我应该连续更新控制器,当我在特定控制器中出错时,我不能发布另一个。

请帮忙!

2 个答案:

答案 0 :(得分:0)

您正在寻找的东西不会自行发生。如果您想要一种即插即用的体系结构,只需发布​​一个模块而无需重新发布整个解决方案。

要实现此目的,您需要将控制器/模块作为单独的项目(单独的库)移动。 ASP.NET Web API的一个有用的配置功能是,它允许您定义用于发现控制器类型的程序集。

如果您有外部程序集且不属于Web API项目,则此功能非常有用。

您可以实施界面System.Web.Http.Dispatcher.IAssembliesResolver GetAssemblies(),甚至可以扩展DefaultAssembliesResolver,如下所示。

public class CustomAssembliesResolver : DefaultAssembliesResolver
{
   public override ICollection<Assembly> GetAssemblies()
   {
       //Your implementation here 
   }
}

您可以在以下链接中找到更多详细信息。

MSDN

Sample

答案 1 :(得分:0)

我认为您正在寻找的是MICRO-SERVICE架构......

https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/data-driven-crud-microservice

https://github.com/dotnet-architecture/eShopOnContainers

您可以使用.NET完整框架

或新的.NET Core(取决于你必须做什么)