Zalecane w wielu podręcznikach dotyczących architektury oprogramowania jest to, że nie należy umieszczać logiki biznesowej w kodzie kontrolera (API). Zakładając, że wdrożysz go we właściwy sposób, na przykład, że twój kod kontrolera aktualnie uzyskuje dostęp do logiki biznesowej poprzez klasę usługi lub fasadę, moja sugestia jest taka, że używasz ponownie tej samej klasy/fasady usług w tym celu, zamiast przechodzić przez "drzwi wejściowe" "(tak, wykonując połączenia JSON od kod związany)
do podstawowego i naieve przykład:
public class MyController1: ApiController {
public string CreateFile() {
var appService = new AppService();
var result = appService.CreateFile();
return result;
}
}
public class MyController2: ApiController {
public string CreateFile() {
var appService = new AppService();
var result = appService.CreateFile();
return result;
}
}
klasa AppService obudowuje logiki biznesowej (a nie żyć na innej warstwie) i sprawia, że łatwiej dostęp do logiki:
public class AppService: IAppService {
public string MyBusinessLogic1Method() {
....
return result;
}
public string CreateFile() {
using (var writer = new StreamWriter..blah die blah {
.....
return 'whatever result';
}
}
...
}
Co masz na myśli przez "code-behind"? – SLaks
@SLaks Powiedz, że mam przycisk asp:. Na wydarzenie click (po stronie serwera/kodu), chciałbym zrobić kilka rzeczy, a następnie wywołać moją akcję Web API (createfile). Mam nadzieję, że jestem jasny. – Rivka
Pls sprawdź przykład mojego kodu. Być może nieco naiwny i prosty, ale to tylko dla ciebie 2 pomysł. –