Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >访问路由属性中的配置

访问路由属性中的配置
EN

Stack Overflow用户
提问于 2018-04-09 12:22:30
回答 1查看 81关注 0票数 1

我的API路由属性类如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyRouteAttribute : RouteAttribute
{
    private const string BaseRoute = "api/default";
    private const string PrefixRouteBase = BaseRoute + "/";
    public MyRouteAttribute() : base(BaseRoute)
    {

    }
    public MyRouteAttribute(string route):
        base(string.IsNullOrEmpty(route) ?
            BaseRoute : PrefixRouteBase + route)
        {

        }

}

它被用于控制器中,如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[MyRoute]
public class MyController : Controller
{
    .....
}

如果必须使路由可配置,如何将IOptions传递给MyRoute?

例如,如果我这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyRouteAttribute : RouteAttribute
{
    private const string BaseRoute = "api/default";

    public MyRouteAttribute(IOptions<ApiRouteBaseConfiguration> routeOptions) : 
        base(routeOptions.Value.Url)
    {

    }

    public MyRouteAttribute(IOptions<ApiRouteBaseConfiguration> routeOptions, string route):
        base(string.IsNullOrEmpty(route) ? (routeOptions.Value.Url: $"{routeOptions.Value.Url}/" + route)
    {

    }
}

然后我在这里出错了,[MyRoute]要求我传递IOptions

如何访问MyRoute属性中的配置

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-09 22:26:33

当从反射例程请求属性时,属性实例由CLR进行are created。您无法通过任何DI容器强制实例化属性。

我看到两种可能的方法来解决你的挑战。这两种方法都允许您拥有可配置的属性,但是配置不是通过属性构造函数设置的。

  1. 更简单的方法是通过在应用程序启动时加载的静态属性来设置配置: 公共类MyRouteAttribute : RouteAttribute { public静态ApiRouteBaseConfiguration RouteConfiguration { get;}=新ApiRouteBaseConfiguration();public MyRouteAttribute():base(RouteConfiguration.Url) {} public MyRouteAttribute(字符串路由):base(string.IsNullOrEmpty(路由)?RouteConfiguration.Url:$"{RouteConfiguration.Url}/“+路由){} 配置(配置部分在这里名为"Routing" ): 公共无效ConfigureServices(IServiceCollection服务){ services.AddMvc();Configuration.Bind(“路由”,MyRouteAttribute.RouteConfiguration);} 因为静态属性的使用,这个解决方案并不完美。然而,这是相当简单的,应该能做到这一点。
  2. 第二种可能的方法--使用属性注入模式进行属性配置,并在IApplicationModelProvider的自定义实现中设置它。这种方法是在this answer中描述的,我不会重复这里的代码。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49741119

复制
相关文章
Python 中几种属性访问的区别
python的提供一系列和属性访问有关的特殊方法:__get__, __getattr__, __getattribute__, __getitem__。本文阐述它们的区别和用法。
Python猫
2019/08/06
2.1K0
Python 中几种属性访问的区别
访问控制列表ACL配置规则_路由交换
定义一系列不同的规则对数据包进行分类,针对不同的报文进行不同的处理,实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等。
张旭博客
2022/12/27
8830
访问控制列表ACL配置规则_路由交换
属性访问
通常可以通过点(.)操作符的形式去访问对象的属性,关于属性的访问,也有相应的魔法方法来管理,
天钧
2019/07/28
7430
外部访问 Vue 中的 methods方法及其属性
如上面Vue的使用的话,可以使用 vm.add() 进行访问,vm 就是当前vue实例的对象。
White feathe
2021/12/08
5.6K0
外部访问 Vue 中的 methods方法及其属性
Flask 学习-2.url访问地址(路由配置)
前言 通过url 地址可以访问一个网页,Flask 框架使用 route() 装饰器来把函数绑定到 URL。 路由 使用 route() 装饰器来把函数绑定到 URL。 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Index Page' @app.route('/hello') def hello(): return 'Hello, World' if __nam
上海-悠悠
2022/08/26
1.6K0
访问蒲公英路由器的上级路由
当通过蒲公英访问端在外网挂v回家的时候,发现想访问蒲公英路由器的上级路由,但是却发现无法访问。
灯珑LoGin
2022/10/31
1.1K0
【Android Gradle 插件】Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )
也可以 通过 project.ext.hello 访问该扩展属性 , 代码如下 :
韩曙亮
2023/03/30
2.5K0
【Android Gradle 插件】Gradle 扩展属性 ④ ( 扩展属性访问方式 | 直接访问扩展属性 | 通过 ext 对象访问 | 在 gradle.properties 中定义扩展属性 )
私有属性/方法的访问
在属性/方法名前有双下划线的,称为私有属性/方法,私有属性/方法外部不能直接访问,
py3study
2020/01/17
1.9K0
路由的配置
设置中可设置初始值,当添加初始值后,启动后若不输入类和具体方法,则程序自动跳转至初始化的默认方法下:
WeiMLing
2019/08/23
1.3K0
路由的配置
分享 5 种在 JS 中访问对象属性的方法
点属性访问器是在 JavaScript 中访问对象属性的最常见和最直接的方式。它使用点 (.) 表示法来访问对象的特定属性。
前端达人
2023/08/31
1.9K0
分享 5 种在 JS 中访问对象属性的方法
opencv访问图像(MAT)的属性
淼学派对
2023/10/14
1850
opencv访问图像(MAT)的属性
JavaScript数据属性和访问器属性
看《深入理解JavaScript》的this篇时看到“访问器属性”这个不熟悉的名词,百度后找到两篇感觉比较合适的文章,整合记录一下,以参考资料2为主,参考资料1为辅助补充。
WindCoder
2018/09/20
1.6K0
如何在 Cisco 路由器上配置扩展访问列表?
访问控制列表(Access Control List,ACL)是网络设备中用于控制流经设备的数据包的工具之一。在 Cisco 路由器上配置扩展访问列表可以帮助网络管理员实现更精细的流量过滤和安全控制。本文将详细介绍在 Cisco 路由器上配置扩展访问列表的步骤和常用的语法规则,以及使用 ACL 实现网络安全的最佳实践。
网络技术联盟站
2023/06/09
4460
如何在 Cisco 路由器上配置扩展访问列表?
Swift:属性访问类别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
菜菜不吃蔡
2019/11/03
7820
Swift:属性访问类别
16、路由原理,静态路由的配置
直连路由:当在路由器上配置了接口的IP地址,并且接口状态为UP时候,路由表中就出现直连路由项
堕落飞鸟
2022/01/05
1.1K0
如何在 Cisco 路由器上配置扩展访问列表?
扩展访问列表是一种用于过滤和控制数据包流经 Cisco 路由器的工具。与标准访问列表只能基于源 IP 地址进行过滤不同,扩展访问列表可以根据源 IP 地址、目的 IP 地址、传输层协议(如 TCP 或 UDP)以及端口号进行更精细的过滤。这使得网络管理员能够更好地控制网络流量和实施安全策略。
网络技术联盟站
2023/09/06
4870
如何在 Cisco 路由器上配置扩展访问列表?
Spring Boot中读取配置属性的几种方式
  本文介绍Spring Boot中读取配置属性的几种方式,项目示例中用到的application.yml和application.properties定义如下:
happyJared
2018/09/20
8.3K0
Spring Boot中读取配置属性的几种方式
Vue3中的路由功能:安装和配置Vue Router、路由的基本用法、动态路由、嵌套路由
Vue3是一款流行的JavaScript框架,它提供了许多强大的功能来简化前端开发。其中一个重要的特性就是路由管理。在Vue3中,我们可以使用Vue Router库来实现路由功能。本文将详细介绍Vue3中的路由功能,包括安装和配置Vue Router、路由的基本用法、动态路由、嵌套路由等方面。
网络技术联盟站
2023/07/05
9.2K0
ensp配置静态路由的步骤_2个路由器静态路由配置
配置各个路由表的核心思想是:只有这个路由表中有一个网段的网络号,才可以从这个路由器跳转到该网段,下面只展示R1的前往CLIENT2的路由配置,其他路由器及返回过程配置类似。
全栈程序员站长
2022/11/08
2.7K0
ensp配置静态路由的步骤_2个路由器静态路由配置
【Android Gradle 插件】LintOptions 配置 ⑤ ( absolutePaths 属性配置 | check 属性配置 | checkAllWarnings 属性配置 )
LintOptions ( build.gradle#android#lintOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.LintOptions.html
韩曙亮
2023/03/30
3580

相似问题

从路由配置到属性路由

12

配置HttpGet属性的路由

115

CodeIgniter路由文件中的访问配置项

22

访问routeProvider的路由属性

20

如何使用路由路径访问laravel中的路由属性?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文