ASP.NET Core Web API-扩展属性路由生成

时间:2019-06-16 14:13:54

标签: asp.net-core asp.net-core-webapi asp.net-core-3.0

假设我想允许人们为我的ASP.NET Core Web API应用程序创建插件。

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

name_data = malloc( STR_LEN );

if ( name_data != NULL ) 
{
    strncpy( name_data, name, STR_LEN );
    name_data[STR_LEN - 1] = '\0';
}           

我可以加载这些插件并将path_data = malloc( STR_LEN ); if ( path_data != NULL ) { strncpy( path_data, path, STR_LEN ); path_data[STR_LEN - 1] = '\0'; } 添加到Asp.net核心中的部件管理器中,然后一切正常-到目前为止没有问题。

但是,假设两个插件都意外使用了相同的路由。他们有可能彼此意外冲突-一个插件会覆盖另一个插件的路由。我不要这个。

因此,我需要做的是确保为每个插件/程序集分配了自己的专用URL空间,并且它的路由是相对的。基本上,它是自己专用的网址基本路径/前缀。

因此,对于上述插件,即使开发人员使用了 [Route("[controller]")] public class SomePlugin: ControllerBase { 的Route属性-我也不想将其作为最终的路由。我想相对于该插件唯一的前缀进行设置-因此我要生成的实际路由将为[Route(“ {plugin-prefix} / [controller]”)]。

该政策应有望确保插件不会偶然之间相互冲突。

现在希望我已经解释了这个问题,我的问题是,现在在asp.net核心中是否有合适的方法/机制来实现这一目标?我正在将ASP.NET Core 3.0与新的端点路由机制一起使用。

0 个答案:

没有答案