[英]Register a generic interface with a non generic implementation in ASP.NET Core Dependency Injection
I have a generic interface: 我有一个通用接口:
public interface IValidationResult<T> where T : struct {
T Status { set; get; }
User User { set; get; }
}
And a class that implements the generic 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;
}
}
I wanna register my interface so I can use DI(Dependency Injection), if both my class and the interface were generic I'd register them as: 我想注册我的接口,以便可以使用DI(Dependency Injection),如果我的类和接口都是通用的,则将它们注册为:
services.AddScoped(typeof(IGenericRepository<>), typeof(EFGenericRepository<>));
But it's possible to register a generic interface with a non generic implementation in ASP.NET Core using the built in Dependency Injection? 但是是否可以使用内置的Dependency Injection向ASP.NET Core中的非通用实现注册通用接口? Thanks 谢谢
how about 怎么样
services.AddScoped<IValidationResult<ValidationResult.ValidationStatus>,
ValidationResult>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.