Unity(任何版本)是否提供了与here所述的Ninject自定义提供程序类似的内容?我需要在类型解析点访问上下文信息。具体来说,我需要访问调用解决方案的类型。
答案 0 :(得分:3)
我不确定你是否可以直接这样做,但我认为你可以通过以下方式实现类似的目标:
public interface IMyType
{
//whatever you need
}
public interface IMyTypeProvider
{
IMyType Create(object context);
}
public class MyTypeProvider : IMyTypeProvider
{
public IMyType Create(object context)
{
//construct required instance based on context
}
}
public class ClassWhichNeedsMyType
{
public ClassWhichNeedsMyType(IMyTypeProvider provider)
{
this.myType = provider.Create(this);
}
private IMyType myType;
}
然后使用容器注册提供程序,并使用它来构建依赖项:
container.RegisterType<IMyTypeProvider, MyTypeProvider>();