저는 Autofac 및 IOC 개념을 처음 사용합니다. 나는 내가 얻지 못하거나 다음과 같은 코드를 가지고있다. 내가 이해 무엇AutoFac IRegistrationBuilder
는 위의 코드에서public void AddComponentInstance<TService>(object instance, string key = "", ComponentLifeStyle lifeStyle = ComponentLifeStyle.Singleton)
{
AddComponentInstance(typeof(TService), instance, key, lifeStyle);
}
public void AddComponentInstance(Type service, object instance, string key = "",ComponentLifeStyle lifeStyle = ComponentLifeStyle.Singleton)
{
UpdateContainer(x =>
{
var registration = x.RegisterInstance(instance).Keyed(key, service).As(service).PerLifeStyle(lifeStyle);
});
}
public void UpdateContainer(Action<ContainerBuilder> action)
{
var builder = new ContainerBuilder();
action.Invoke(builder);
builder.Update(_container);
}
public static class ContainerManagerExtensions
{
public static Autofac.Builder.IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> PerLifeStyle<TLimit, TActivatorData, TRegistrationStyle>(this Autofac.Builder.IRegistrationBuilder<TLimit, TActivatorData, TRegistrationStyle> builder, ComponentLifeStyle lifeStyle)
{
switch (lifeStyle)
{
case ComponentLifeStyle.LifetimeScope:
return HttpContext.Current != null ? builder.InstancePerHttpRequest() : builder.InstancePerLifetimeScope();
case ComponentLifeStyle.Transient:
return builder.InstancePerDependency();
case ComponentLifeStyle.Singleton:
return builder.SingleInstance();
default:
return builder.SingleInstance();
}
}
}
`
`
, 우리는 컨테이너의 싱글 인스턴스를 등록하고 우리가 용기를 업데이트하는 것입니다. 온라인으로 검색했습니다. IRegistrationBuilder 인터페이스 예는 만족스러운 답변을 얻을 수 없습니다.누구나 의 개념을 이해하는 데 도움을 줄 수 있습니까? IRegistrationBuilder.
이 코드는 NopCommerce 응용 프로그램에서 참조하고 있습니다. 미리 감사드립니다.