Альтернативой может быть регистрация делегата, способного изменить базовый экземпляр, предоставленный контейнером. Рассмотрим следующий код:
var theInstance = new MyType();
var builder = new ContainerBuilder();
builder.Register(context => theInstance);
builder.Register<Action<MyType>>(context => newInstance => theInstance = newInstance);
var container = builder.Build();
Теперь вы можете разрешить действие, чтобы получить делегата, который может изменить регистрацию:
var updateInstance = c.Resolve<Action<MyType>>();
updateInstance(new MyType());
Примечание: если бы вы могли уточнить , когда и , почему вам нужно изменить экземпляр, возможно, мы могли бы даже найти лучшее решение.