Я пытаюсь реорганизовать некоторый код, чтобы использовать инъекцию зависимости .NET Core через службы отображения в startup.cs. Я хотел бы ввести здесь IRequestDatabaseLogger вместо того, чтобы его обновлять. Однако для этого требуется контекст в конструкторе. Как я могу это достичь? Возможно ли это без рамки DI или даже тогда?Ввод регистратора с зависимостями конструктора
public class ActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var requestDatabaseLogger = new RequestDatabaseLogger(context);
long logId = requestDatabaseLogger.Log();
context.HttpContext.AddCurrentLogId(logId);
base.OnActionExecuting(context);
}
}
Запретить делать что-либо полезное в атрибутах. Атрибуты должны быть пассивными, как описано [здесь] (http://blog.ploeh.dk/2014/06/13/passive-attributes/) и [здесь] (https://www.cuttingedge.it/blogs/steven /pivot/entry.php?id=98). – Steven
Связанный: https://stackoverflow.com/a/29916075/264697 – Steven
Я думаю, вы имеете в виду * Избегайте * Не предотвращать (делать что-нибудь полезное) ... – ssmith