无法解决自定义ValidationAttribute中的依赖关系,IServiceProvider在ValidatationContontext参数上设置为null

问题描述 投票:0回答:1

一个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;
    }
}
.net-core dependency-injection autofac asp.net-core-2.1 validationattribute
1个回答
0
投票

我不能说我之前已经尝试过此操作,但是进行了一些搜索后发现this issue似乎表明服务提供者(不是ServiceContainer属性,而是将响应GetService的服务提供者通话),应始终填充。当然,这是从.NET Core早期的一个存档仓库中获取的,但是它仍然应该保留。

© www.soinside.com 2019 - 2024. All rights reserved.