gpt4 book ai didi

c# - 需要将 Controller 的操作方法调用到 c# mvc 中的另一个类中

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

我在 Controller 中创建了一个方法,但我需要将此方法调用到另一个类中,但我不知道如何调用它。

我的示例代码:-

  public class ReportController : BaseController
{
private readonly IPermissionService _permissionService;
private readonly ICompaniesService _companyService;

public ReportController(IPermissionService permissionService,
ICompaniesService companyService)
{
this._permissionService = permissionService;
this._companyService = companyService;
}

public void Reporting()
{
// code
}
}


public class Home {

public void Execute()
{
//I need to execute the Reporting method here
}

}

我已经尝试了很多方法来在另一个类方法中调用我的方法,但我无法让它工作。

最佳答案

在必须在多个地方调用的 Controller 中包含一些代码是一种糟糕的设计方式。在您的项目中或在包含此代码的外部 DLL 中创建一个类,并在需要此方法的 Controller 中调用此类。

在某处(在您的项目中或在类库中)创建一个类:

public class MyClass
{
public MyClass()
{}

public void MyMethod()
{
// Some code here
}
}

并在需要此代码的 Controller 或类中实现此代码。

public class ReportController : BaseController
{
private readonly IPermissionService _permissionService;
private readonly ICompaniesService _companyService;

public ReportController(IPermissionService permissionService,
ICompaniesService companyService)
{
this._permissionService = permissionService;
this._companyService = companyService;
}

public void Reporting()
{
MyClass myClass = new MyClass();
myClass.MyMethod();
}
}

顺便说一下,如果您的代码不需要任何实例,您可以创建一个静态类,例如:

public static class MyClass
{
public static void MyMethod()
{
// Some code here
}
}

public class ReportController : BaseController
{
private readonly IPermissionService _permissionService;
private readonly ICompaniesService _companyService;

public ReportController(IPermissionService permissionService,
ICompaniesService companyService)
{
this._permissionService = permissionService;
this._companyService = companyService;
}

public void Reporting()
{
MyClass.MyMethod();
}
}

关于c# - 需要将 Controller 的操作方法调用到 c# mvc 中的另一个类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834863/

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