какая разница между RegisterInstance и RegisterType в DI Autofac - PullRequest
1 голос
/ 23 октября 2019

Я новичок в Autofac, и я пытаюсь понять разницу между RegisterInstance и RegisterType в веб-API 2 (.Net Framework). Вот в его документе есть простой пример

var builder = new ContainerBuilder();


// Register individual components
builder.RegisterInstance(new TaskRepository())
       .As<ITaskRepository>();
builder.RegisterType<TaskController>();
builder.Register(c => new LogManager(DateTime.Now))
       .As<ILogger>();

// Scan an assembly for components
builder.RegisterAssemblyTypes(myAssembly)
       .Where(t => t.Name.EndsWith("Repository"))
       .AsImplementedInterfaces();

var container = builder.Build();

Может кто-нибудь объяснить это?

1 Ответ

2 голосов
/ 23 октября 2019

RegisterInstance регистрирует один экземпляр, который затем будет использоваться как синглтон.

RegisterType оставляет создание и время жизни для контейнера. По умолчанию обычно создается запрос.

...