你应该更喜欢在节制器中利用依赖项注入来打点依赖项。依赖注入是节制反转(IoC)原则的一个子集。它用于通过答允从外部注入的依赖项删除内部依赖项。
通过操作依赖注入,你不必体贴工具的实例化、初始化等。你可以有一个返回所需范例实例的工场,然后可以利用结构函数注入来利用该实例。下面的代码片断说明白如何利用结构函数将IAuthorService范例的实例注入到AuthorController。(假设IAuthorService是AuthorService类扩展的接口。)
public class AuthorController : Controller { private IAuthorService authorService = new AuthorService(); public AuthorController(IAuthorService authorService) { this.authorService = authorService; } }
利用action过滤器来消除反复的代码可以在asp.net core中利用action过滤器在请求管道中的特定点执行定制代码。譬喻,你可以利用action过滤器在操纵action要领执行之前和之后执行自界说代码。你可以从节制器的action要领中删除验证逻辑,并将其写入action过滤器中,而不是在节制器中编写验证逻辑。下面的代码片断显示了如何实现这一点。
[ValidateModelState] [HttpPost] public ActionResult Create(AuthorRequest request) { AuthorService authorService = new AuthorService(); authorService.Save(request); return RedirectToAction("Home"); }
你将多个职责分派给了一个节制器,那么也会有多个原因导致节制器变动。因此,这违反了单一责任原则,该原则划定类应该有且只有一个改观的来由。
到此这篇关于详解如安在ASP.NET Core中编写高效的节制器的文章就先容到这了,更多相关ASP.NET Core 节制器内容请搜索剧本之家以前的文章或继承欣赏下面的相关文章但愿各人今后多多支持剧本之家!
您大概感乐趣的文章: