tôi sử dụng dependency injection constructor dựa trên khắp mọi nơi trong ứng dụng ASP.NET CORE
của tôi và tôi cũng cần phải giải quyết phụ thuộc trong các bộ lọc hành động của tôi:Làm thế nào để sử dụng Bộ lọc hành động với Dependency Injection trong ASP.NET CORE?
public class MyAttribute : ActionFilterAttribute
{
public int Limit { get; set; } // some custom parameters passed from Action
private ICustomService CustomService { get; } // this must be resolved
public MyAttribute()
{
}
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
// my code
...
await next();
}
}
Sau đó, trong Bộ điều khiển:
[MyAttribute(Limit = 10)]
public IActionResult()
{
...
Nếu tôi đặt ICustomService đến constructor, sau đó tôi không thể biên dịch dự án của mình. Vì vậy, làm thế nào để tôi supossed để có được trường hợp giao diện trong bộ lọc hành động?
Bạn có thể thêm setter trong thuộc tính CustomService để có thể ghi được không? và thêm ICustomService làm tham số trong hàm tạo? –
Bản sao có thể có của [ASP.Net Core (MVC 6) - Tiêm dịch vụ vào bộ lọc hành động] (http://stackoverflow.com/questions/36109052/asp-net-core-mvc-6-inject-service-into-action -filter) – gilmishal
Bản sao có thể có của [Làm cách nào để thêm thông số vào bộ lọc hành động trong asp.net?](http://stackoverflow.com/questions/39181390/how-do-i-add-a-parameter-to -an-action-filter-in-asp-net) –