一个ASP.NET Core 2.1 MVC应用程序,使用Autofac遵循其安装文档(https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html)。
我正在尝试解决自定义ValidationAttribute中的依赖项。 valicationContext.GetService返回的值始终返回null。检查私有成员serviceProvider的validationationContext始终为空。
我在设置中缺少什么,所以无法正常工作。这些依赖关系可以在应用程序中的其他所有地方解析,而不能在ValidationAttributes中解析。
public class MyCustomAttribute : ValidationAttribute
{
public MyCustomAttribute ()
{
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// THIS IS ALWAYS RETURNING NULL
var IMyService service = (IMyService)validationContext.GetService(typeof(IMyService));
return ValidationResult.Success;
}
}
我不能说我之前已经尝试过此操作,但是进行了一些搜索后发现this issue似乎表明服务提供者(不是ServiceContainer
属性,而是将响应GetService
的服务提供者通话),应始终填充。当然,这是从.NET Core早期的一个存档仓库中获取的,但是它仍然应该保留。