C# 在一个方法上创建一个字符串属性,然后在另一个方法通过属性调用时激发

C# 在一个方法上创建一个字符串属性,然后在另一个方法通过属性调用时激发,c#,C#,当我就另一个话题问另一个问题时,我就走上了这条道路,但我很难看到这是怎么可能的。因此,如果有人能给我指出正确的方向,那就太棒了!非常感谢 因此,基本上在我的UI层(外部站点)中,我试图减少硬编码字符串和条件逻辑 下面的代码从querystring(web api上的控制器名称)接收值 此时它触发一个方法:contentFacade.GetContent(addonType,webName) 它指向我构建内容的外观,在该外观中我有多种方法,如: 获取博客帖子 获取新闻 获取服务 所有方法都指向

当我就另一个话题问另一个问题时,我就走上了这条道路,但我很难看到这是怎么可能的。因此,如果有人能给我指出正确的方向,那就太棒了!非常感谢

因此,基本上在我的UI层(外部站点)中,我试图减少硬编码字符串和条件逻辑

下面的代码从querystring(web api上的控制器名称)接收值

此时它触发一个方法:
contentFacade.GetContent(addonType,webName)

它指向我构建内容的外观,在该外观中我有多种方法,如:

  • 获取博客帖子
  • 获取新闻
  • 获取服务
所有方法都指向各自的类(DTO),这些类从web api获取json,然后我在UI端将其转换为HTML

在理想情况下,我希望在任何具有控制器名称的方法上添加一个属性,如下所示:

["blog"] //controller name in the attribute
public string GetBlogPosts() 
{
   //Code ommitted
}
在前端,我只会称之为“GetContent”

最终的想法是保持它的超级可维护性。一些逻辑将被删除,因此UI(外部站点)不需要知道任何信息,只需要接收一些很酷的内容

所有信息都是从我的定制CMS中提取的,带有安全的应用程序密钥。它只是以一种健壮的方式交付内容,这是一种挑战

因此,要重新设置上限,是否有人能告诉我向一个方法添加一个属性,然后使用字符串通过属性在另一个方法中调用该属性?

这是一个需要消化的过程,我希望它不会太过沉重,我非常感谢每个人的时间


关于,

只需创建一个新属性并通过反射读取值?@germ我感谢您的输入。有代码的小方向?我读过很多MSDN文章,似乎找不到关于创建自定义方法属性的可靠资源。如何?如果这没有帮助,你需要更具体地说明你的问题所在。@germ谢谢你的链接,我已经访问了这个链接。请原谅我,因为我对“属性”比较陌生。似乎可以向类添加属性,或者将属性绑定到具有属性值的方法。其思想是拥有一个与类无关的属性,只是一个我可以调用的字符串。希望这有意义?或者我遗漏了一点hahaYou可以创建一个属性
ContentAttribute
,并用它装饰您的方法。然后,当您在寻找要调用的正确方法时,您可以遍历您的方法,在该方法上查找
ContentAttribute
。如果存在,则获取属性的值(在您的示例
blog
),并相应地处理它。该属性可能看起来像这样
[内容(“博客”)]
["blog"] //controller name in the attribute
public string GetBlogPosts() 
{
   //Code ommitted
}
public string GetContent(string controllerName, string singleItemName = "") 
{
    //HERE I would like to call the method by the attribute of the controller name (string value)

    //Maybe something like this ...
    return this.attribute(typeOf(controllerName)).Invoke().Value();
}