Я не уверен, что вы можете сделать это напрямую, но я думаю, что вы могли бы достичь чего-то подобного, выполнив следующее:
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>();