Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core Asp.net核心web api-扩展属性路由生成_Asp.net Core_Asp.net Core Webapi_Asp.net Core 3.0 - Fatal编程技术网

Asp.net core Asp.net核心web api-扩展属性路由生成

Asp.net core Asp.net核心web api-扩展属性路由生成,asp.net-core,asp.net-core-webapi,asp.net-core-3.0,Asp.net Core,Asp.net Core Webapi,Asp.net Core 3.0,假设我想让人们为我的ASP.NET核心Web API应用程序创建插件 插件可以包括使用属性路由的端点: [路由(“[控制器]”)] 公共类插件:ControllerBase { 我可以加载这些插件,并将AssemblyPart添加到Asp.net core中的零件管理器中,这些东西就可以工作了-到目前为止没有问题 但是,假设两个插件都意外地使用了相同的路由。它们可能会意外地相互冲突-一个插件覆盖了另一个插件的路由。我不希望这样 所以我需要做的是确保每个插件/程序集都被分配了它自己的专用URL空

假设我想让人们为我的ASP.NET核心Web API应用程序创建插件

插件可以包括使用属性路由的端点:

[路由(“[控制器]”)]
公共类插件:ControllerBase
{
我可以加载这些插件,并将
AssemblyPart
添加到Asp.net core中的零件管理器中,这些东西就可以工作了-到目前为止没有问题

但是,假设两个插件都意外地使用了相同的路由。它们可能会意外地相互冲突-一个插件覆盖了另一个插件的路由。我不希望这样

所以我需要做的是确保每个插件/程序集都被分配了它自己的专用URL空间,它的路由在其中是相对的。基本上,它是自己的专用URL基本路径/前缀

因此,在上述插件的情况下,即使开发人员使用了路由属性
[Route(“[controller]”)
-我不希望这是最终的路由。我想使其相对于该插件唯一的前缀-因此我想要生成的实际路由将是[Route(“{plugin prefix}/[controller]”)

这一策略有望保证插件不会意外地相互冲突


希望现在我已经解释了这个问题,我的问题是,现在有没有合适的方法/机制在asp.net core中实现这一点?我正在使用asp.net core 3.0和新的端点路由机制。

你有什么进展吗?我也在研究这个问题。没有进展,我暂时搁置。如果你再进一步,请告诉我!你有什么进展吗?我也在调查。没有进展,我暂时搁置。如果你再进一步,请告诉我!