Разрешить класс и зарегистрировать возвращаемый объект из одного метода - PullRequest
0 голосов
/ 03 июля 2019

У меня есть класс Factory, в котором есть конструктор, который принимает один параметр, и метод Create, который возвращает IClient объект.

class Factory
{
  public Factory(SomeParam someParam) 
  { /*...*/ }

  public IClient Create()
  { /*...*/ }
}

Как я могу зарегистрировать это Factory в автофаке?

1 Ответ

1 голос
/ 04 июля 2019

Вы должны сначала зарегистрировать свою фабрику, а затем зарегистрировать делегата, который разрешит фабрику и вернет IClient.

Конечно, SomeParam также следует зарегистрировать в Autofac

builder.RegisterType<ClientFactory>()
       .As<IClientFactory>();
builder.Register(ctx => ctx.Resolve<IClientFactory>().Create())
       .As<IClient>();
...