Что эквивалентно autofacs WithParameter в DryIoc?

Пытаясь перейти с Autofac на DryIoc, я столкнулся со сценарием, в котором мне нужно передать значение параметра в конструктор службы.

// given the following class
public class SomeService
{
    public SomeService(Foo foo, Bar bar) { }
}
// in autofac it looks like this
container.RegisterType<SomeService>()
         .WithParameter("foo", SomeFoo.Value)
         .WithParameter("bar", SomeBar.Value)
         .AsSelf();

Что было бы эквивалентно в DryIoc?

Прямо сейчас я пытаюсь использовать RegisterDelegate, но я не уверен, что я на правильном пути.

container.RegisterDelegate(x => new SomeService(SomeFoo.Value, SomeBar.Value));

person Chase Florell    schedule 04.06.2020    source источник


Ответы (1)



container.Register<SomeService>(
made: Made.Of(Parameters.Of
.Name("foo", _ => SomeFoo.Value)
.Name("bar", _ => SomeBar.Value)));

Вот возможные перегрузки: https://www.fuget.org/packages/DryIoc.dll/4.2.0/lib/netstandard2.0/DryIoc.dll/DryIoc/Parameters

Существует аналог класса Parameters PropertiesAndFields для указания деталей внедрения свойств.

Кроме того, существует пакет DryIoc.Syntax.Autofac, который может вас заинтересовать https://www.fuget.org/packages/DryIoc.Syntax.Autofac.dll

Начиная с версии 1, он охватывает только небольшое подмножество поверхности API Autofac, но я рекомендую вам изучить его исходный код и, возможно, помочь с PR или двумя :) https://github.com/dadhi/DryIoc/tree/master/src/DryIoc.Syntax.Autofac

person dadhi    schedule 05.06.2020