Jos*_*ers 2 .net c# asp.net-mvc asp.net-mvc-5
有没有办法从另一个类调用应用程序 API 控制器而不使用 API 的 url?
例如我在“personContoller”中有这个方法
public async Task<ActionResult> GetPersonRecord(string id)
{
Person person;
var link = "api/entity/Person/" + id + "?format=json";
string results = await OneIMAction(link);
person = JsonConvert.DeserializeObject<Person>(results);
string json = JsonConvert.SerializeObject(person, Formatting.Indented);
return Content(json, "application/json");
}
Run Code Online (Sandbox Code Playgroud)
如何在同一应用程序中的另一个 C# 类中访问此方法的 JSON 结果,而无需使用 Web 请求?那可能吗?
根据单一职责原则(SOLID 的第一原则),\xe2\x80\x9ce 每个模块或类都应该对软件\xe2\x80\x9d 提供的功能的单个部分负责。
\n\n从 API Controller 继承的类必须响应 Web 请求。如果我们希望 API 控制器能够访问另一个 API 控制器的某些操作,我们应该创建一个 Web 请求并调用该 URL(不推荐)。如果我们希望一个任务由多个方法调用,我们会将其转移到称为类服务的 Facade。想要使用它的 API 控制器的所有操作都将使用该类服务。
\n\npublic class TestService \n{\n public void Do()\n {\n // ...\n }\n}\n\n\npublic class HomeController1 : Controller\n{\n public ActionResult Index()\n {\n var service = new TestService();\n service.Do();\n return View();\n }\n}\n\n\npublic class HomeController2 : Controller\n{\n public ActionResult Index()\n {\n var service = new TestService();\n service.Do();\n return View();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5834 次 |
| 最近记录: |