müssen call-controller die action-Methode in eine andere Klasse in c# mvc
Erstellt habe ich eine Methode in einem controller, aber ich brauche Sie zum aufrufen dieser Methode in andere Klasse und ich weiß nicht, wie Sie es nennen.
mein Beispielcode :-
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
}
}
Ich habe versucht, viele Dinge zu nennen, meine Methode in eine andere Klasse, Methode, aber ich kann nicht ankommen es zu wirken.
new ReportController().Reporting();
Mögliche Duplikate von Wie man den Aufruf der Methode eine weitere in der Klassen C#?
Ist es möglich für Sie zu erstellen Reporting-Methode als statische?
InformationsquelleAutor Sangeet Shah | 2016-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein schlechtes design Weg, um einige code im controller, die aufgerufen werden, an mehreren stellen. Erstellen Sie eine Klasse in Ihrem Projekt oder in einer externen DLL, die diesen code enthält, und rufen Sie diese Klasse in den Controllern, müssen diese Methode.
Erstellen Sie eine Klasse, die irgendwo (im Projekt oder in eine Bibliothek-Klasse) :
Und implementieren Sie diesen code in Ihre Steuerungen oder Klassen, die brauchen das.
Übrigens, wenn Ihr code braucht keine Instanz, können Sie eine statische Klasse, wie :
InformationsquelleAutor AdrienTorris
Es gibt zwei Möglichkeiten, dies zu erreichen. Sie sind mit dependency injection in den controller-Konstruktor, so haben Sie zwei Möglichkeiten, dies zu tun (nicht sicher, ob ich verpasst haben?):
Option 1:
Es funktioniert nach dem gleichen Prinzip wie die Erstellung einer Instanz einer Klasse und dann seine Methoden aufrufen.
Option 2:
Es ist nicht mein code 🙂 Sage das den OP..
InformationsquelleAutor Brendan Vogt
Als jede andere Klasse, die die Methode nicht statisch ist
Bitte Lesen Sie diese Antwort, Sie gehen in ein viel mehr Details als ich
Sie sollten die Verwendung DI-Bibliothek, oder erstellen Sie eine neue Instanz für jeden Parameter , den Sie verwenden können
StructureMap
seine RostInformationsquelleAutor Draken