如何使用我的自定义方法扩展控制器类

can*_*stu 1 c# asp.net asp.net-core

我想从扩展控制器类轻松获取我的方法,并向控制器类添加一些方法以在所有其他控制器中使用,如下所示:

扩大

public string GetString()
{
    return "iamanexample";
}
Run Code Online (Sandbox Code Playgroud)

认证控制器

public class AuthenticationController : Controller
{
   public IActionResult Index()
   {
       string getMyStr = GetString();
       return View();
   }
}
Run Code Online (Sandbox Code Playgroud)

我是否必须创建一个由控制器类继承的自定义类并在其中添加我的方法,然后使用我的自定义控制器类?或者还有其他解决方案吗?

小智 5

您可以选择继承,也可以创建 Controller 的扩展方法,我更喜欢后者。

要创建扩展方法,您可以创建一个静态类并在该类中创建一个静态方法。

public static class ControllerExtensions
{
     public static string GetString(this Controller controller)
     {
          return "iamanexample";
     } 
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过任何控制器轻松访问它,方法是:

string exampleString = this.GetString();
Run Code Online (Sandbox Code Playgroud)