使用 LighInject 时如何注入 IServiceContainer?
How to inject IServiceContainer when using LighInject?
我正在使用 LightInject,现在我需要知道如何自己解析类型。我尝试使用 IServiceContainer
,但是当我将此接口注入我的 class 时,我收到一条错误消息,指出这是一个未解决的依赖项。
我要解决的就是这个。在运行时我有一个 Type
我需要一个实例。所以我想做类似 SomeResolver.GetInstance(myType)
.
的事情
如何使用 LightInject 执行此操作?
我有一个可行的解决方案。不知道这是否是 'preferred' 方式,所以如果有人有更好的主意,请告诉我:)
这是我现在使用的:
container.Register<ITypeResolver>(s => new LightInjectTypeResolver(s));
这里是 class 实现 ITypeResolver
:
public class LightInjectTypeResolver : ITypeResolver
{
private readonly IServiceFactory _serviceFactory;
public LightInjectTypeResolver(IServiceFactory serviceFactory)
{
_serviceFactory = serviceFactory;
}
public object GetType(Type entity)
{
return _serviceFactory.GetInstance(entity);
}
}
我正在使用 LightInject,现在我需要知道如何自己解析类型。我尝试使用 IServiceContainer
,但是当我将此接口注入我的 class 时,我收到一条错误消息,指出这是一个未解决的依赖项。
我要解决的就是这个。在运行时我有一个 Type
我需要一个实例。所以我想做类似 SomeResolver.GetInstance(myType)
.
如何使用 LightInject 执行此操作?
我有一个可行的解决方案。不知道这是否是 'preferred' 方式,所以如果有人有更好的主意,请告诉我:)
这是我现在使用的:
container.Register<ITypeResolver>(s => new LightInjectTypeResolver(s));
这里是 class 实现 ITypeResolver
:
public class LightInjectTypeResolver : ITypeResolver
{
private readonly IServiceFactory _serviceFactory;
public LightInjectTypeResolver(IServiceFactory serviceFactory)
{
_serviceFactory = serviceFactory;
}
public object GetType(Type entity)
{
return _serviceFactory.GetInstance(entity);
}
}