使用 Lightinjector DI 框架如何注册同一接口的多个实现?如何在构造函数上提及相同的接口并要求其不同的实现?
container.Register<IInterface1, Myclass1>();
container.Register<IInterface1, Myclass2>();
在尝试注释时,遇到以下异常
"message": "Unable to resolve type:
"innererror": {
"trace": " at LightInject.ServiceContainer.CreateDelegate(Type serviceType, String serviceName, Boolean throwError) in C:\\projects\\lightinject\\build\\tmp\\netstandard16\\Binary\\LightInject\\LightInject.cs:line 3901\r\n at LightInject.ServiceContainer.CreateDefaultDelegate(Type serviceType, Boolean throwError) in C:\\projects\\lightinject\\build\\tmp\\netstandard16\\Binary\\LightInject\\LightInject.cs:line 3859\r\n at LightInject.ServiceContainer.TryGetInstance(Type serviceType) in C:\\projects\\lightinject\\build\\tmp\\netstandard16\\Binary\\LightInject\\LightInject.cs:line 2777\r\n at LightInject.Scope.WithThisScope[T](Func`1 function) in C:\\projects\\lightinject\\build\\tmp\\netstandard16\\Binary\\LightInject\\LightInject.cs:line 6169\r\n
容器注册如下,
container.EnableAnnotatedPropertyInjection();
container.Register<ILoginHandler, LoginHandler>("LoginHandler");
类“User.cs”的构造函数注入如下,
public class User
{
public ILoginHandler _loginHandler { get; private set; }
public class([Inject(serviceName: "LoginHandler")]ILoginHandler loginHandler)
{
_loginHandler = loginHandler;
}
}