gpt4 book ai didi

c# - 在属性构造函数中使用 Lambda 获取方法的参数

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:05 26 4
gpt4 key购买 nike

我什至不确定这是否可行,但我已经用尽了我所有的想法来解决这个问题,所以我想我会把它发送给社区,看看你的想法。而且,如果不可能,也许您也会有一些想法。

我正在尝试制作一个属性类,我可以将其添加到一个方法中,该方法允许我使用 lambda 表达式来获取方法的每个参数


public ExampleAttribute : Attribute
{
public object Value { get; set; }

public ExampleAttribute(--something here to make the lambda work--, object value)
{
Value = value;
}
}

我希望能够像下面这样:


[Example(x=>x.Id, 4)]
[Example(x=>x.filter, "string value")]
public ActionResult Index(int Id, string filter)
{
return View();
}

我知道我可能完全是在做梦。我基本上是在尝试编写一个模型以允许 self 记录 REST API 文档。在最近的一个项目中,我们写了十几个服务,每个服务有 5 到 15 个方法,我想写一些东西来做这件事比为每个服务编写文档页面更容易。一旦我将它放在我认为可以发布的地方,我计划最终将它作为一个开源项目发布。

最佳答案

我不认为这是可能的,但我认为无论如何您都不需要这样做。相反,您可以将属性直接放在参数上,如下所示:

public ActionResult Index(
[Documentation("the identifier...")]
int id,

[Documentation("The filter")]
string filter
)
{
return ...;
}

然后您可以使用 ParameterInfo.GetCustomAttributes获取参数的属性。

关于c# - 在属性构造函数中使用 Lambda 获取方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3050144/

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