gpt4 book ai didi

c# - 根据路由值(命名空间)选择 ASP.NET Web API Controller

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:23 25 4
gpt4 key购买 nike

我正在尝试将各种 Web API 插件添加到我的 MVC 网站。复制和粘贴 API 文件的 DLL 允许我使用默认路由调用适当的服务方法 - hostname/api/{controller}/{id},但是当我有相同名称但位于不同位置的 Controller 时它会抛出错误( DLL、命名空间)。错误信息是这样的(这是正常的):

Multiple types were found that match the controller named 'Names'. This can happen if the route that services this request ('api/{controller}/{id}') found multiple controllers defined with the same name but differing namespaces, which is not supported. The request for 'Names' has found the following matching controllers: ApiExt.NamesController ApiExt1.NamesController

我在不同的 DLL(命名空间)ApiExt、ApiExt1 中有相同的“名称” Controller 。

我已经找到了一个类似的主题来根据 API 版本选择 Controller - http://shazwazza.com/post/multiple-webapi-controllers-with-the-same-name-but-different-namespaces/ ,但这不是我所需要的。我需要根据路由值选择 Controller (命名空间),如下所示:

hostname/api/{namespace}/{controller}/{id}

我相信这绝对有可能,但我不熟悉覆盖 MVC Controller 选择器(实现 IHttpControllerSelector)。

有什么建议吗?

谢谢。

最佳答案

你绝对可以做到这一点。您需要通过实现 IHttpControllerSelector 来编写您自己的 Controller 选择器。请引用this详细的分步说明链接。

关于c# - 根据路由值(命名空间)选择 ASP.NET Web API Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com