In Unity, line below solves my problem.
container.RegisterType<Func<Type, Object>>(new InjectionFactory(x => new Func<Type, Object>((y) => x.Resolve(y))));
Can I achieve this with Simple Injector?
Or maybe there's some better way to register my factory?
public class QueryFactory : IQueryFactory
{
private readonly Func<Type, object> _resolveCallback;
public QueryFactory(Func<Type, object> resolveCallback)
{
_resolveCallback = resolveCallback;
}
public T ResolveQuery<T>()
where T : class, IQuery
{
return _resolveCallback(typeof(T)) as T;
}
}
Ok, I solved it.
container.Register<Func<Type, Object>>(() => { return (x) => container.GetInstance(x); });