c# - 在 ASP.NET Core 依赖注入(inject)中使用非泛型实现注册泛型接口(interface)

标签 c# generics dependency-injection asp.net-core

我有一个通用接口(interface):

public interface IValidationResult<T> where T : struct {
        T Status { set; get; }
        User User { set; get; }
}

还有一个实现通用接口(interface)的类:

public class ValidationResult : IValidationResult<ValidationResult.ValidationStatus> {
    public enum ValidationStatus { UserNotFound, InvalidPassword, Valid, UserBlankOrSpace }
    public ValidationStatus Status { set; get; }
    public User User { set; get; }

    public ValidationResult (User user, ValidationStatus status) {
        if (user == null) {
            throw new ArgumentNullException ("The User is Null");
        }
        Status = status;
        User = user;
    }
}

我想注册我的接口(interface)以便我可以使用 DI(依赖注入(inject)),如果我的类和接口(interface)都是通用的,我会将它们注册为:

services.AddScoped(typeof(IGenericRepository<>), typeof(EFGenericRepository<>));

但是可以使用内置的依赖注入(inject)在 ASP.NET Core 中注册具有非泛型实现的泛型接口(interface)吗?谢谢

最佳答案

怎么样

services.AddScoped<IValidationResult<ValidationResult.ValidationStatus>,
                   ValidationResult>();

关于c# - 在 ASP.NET Core 依赖注入(inject)中使用非泛型实现注册泛型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593180/

相关文章:

.net - 将 InterceptionBehaviour 添加到 IoC 容器中注册的所有内容

c# - 使用serilog关闭asp.net core 2.2中的mvc请求日志记录

c# - 找不到 WebClient

c# - RhinoMocks 在泛型方法中抛出 InvalidOperationException

javascript - 如何使用 "Injection Tokens"(或其他方式)覆盖 Angular Material 默认选项

c# - 了解 Ninject mvc 3 样板代码

c# - FileHelpers -- 只读取第 N 列

c# - 如何更改wcf中的默认http方法

java - Java泛型可以替代多个相似的类吗?

java - 以 <ArrayList<String>> 作为值的 HashMap,获取 AnimalHipsters