1

我正在使用 LightInject,现在我需要知道如何自己解析类型。我尝试使用IServiceContainer,但是当我将此接口注入到我的类中时,我收到一条错误消息,指出这是一个未解决的依赖项。

我想要解决的是这个。在运行时我有一个Type我需要一个实例。所以我想做类似的事情SomeResolver.GetInstance(myType)

我怎样才能用 LightInject 做到这一点?

4

1 回答 1

1

我有一个可行的解决方案。不知道这是否是“首选”方式,所以如果有人有更好的主意,请告诉我:)

这是我现在使用的:

container.Register<ITypeResolver>(s => new LightInjectTypeResolver(s));

这是实现的类ITypeResolver

public class LightInjectTypeResolver : ITypeResolver
{
    private readonly IServiceFactory _serviceFactory;

    public LightInjectTypeResolver(IServiceFactory serviceFactory)
    {
        _serviceFactory = serviceFactory;
    }

    public object GetType(Type entity)
    {
        return _serviceFactory.GetInstance(entity);
    }
}
于 2019-10-02T08:01:26.070 回答