Я только что обновился до MVC 3, а также необходимо обновить Autofac.
Следующий код работал, но теперь не работает с этой ошибкой -
Эта операция разрешения ужезакончился.При регистрации компонентов с использованием лямбда-выражения параметр IComponentContext 'c' для лямбды не может быть сохранен.Вместо этого либо снова разрешите IComponentContext из 'c', либо разрешите фабрику на основе Func <> для создания последующих компонентов из.
public static IServiceLocator Locator;
public class ServiceA : IServiceA
{
}
public interface IServiceA
{
}
[Test]
public void TestAutofacServiceLocator()
{
// This resolve operation has already ended. When registering components using lambdas, the IComponentContext 'c' parameter to the lambda cannot be stored.
// Instead, either resolve IComponentContext again from 'c', or resolve a Func<> based factory to create subsequent components from.
var builder = new ContainerBuilder();
builder.RegisterType<ServiceA>().As<IServiceA>();
builder.Register(c => Locator = new AutofacServiceLocator(c)).As<IServiceLocator>().SingleInstance();
var container = builder.Build();
container.Resolve<IServiceLocator>();
var x = Locator.GetInstance<IServiceA>();
Assert.NotNull(x);
}
Как мне следует повторно зарегистрировать IServiceLocator?
Iпосмотрел на ответ на вопрос проблема с автоматической регистрацией в выпуске v2.4.5.724 но я все еще в замешательстве.