Fluent синтаксис для Spring.NET - CodeHelper

Fluent синтаксис для Spring.NET

3

Можно ли для конфигурации контейнера Spring.NET использовать Fluent синтаксис как в большинстве других ioc фреймворках?

Лучший ответ:

3

Да, для этого служит библиотека Recoil.

Recoil — это fluent-расширение интерфейса Spring.NET. Библиотека предоставляет легкий в использовании каркас для определения связей между объектами (wires) в коде, так что конфигуровочный код проверяется во время компиляции и вы можете использовать всю мощь рефакторинга (например, с помощью ReSharper), не боясь, что XML-конфигурация перестанет работать.

Recoil позволяет заменить такой синтаксис:

<object id="MyAssembly.MyNamespace.IBar"
      type="MyAssembly.MyNamespace.BarFactory,  MyAssembly"
      factory-method="Create">
    <property name="TestProperty" value="TestValue"/>
    <property name="ListProperty">
           <list element-type="MyAssembly.MyNamespace.Foo">
                   <object type="MyAssembly.MyNamespace.Foo">
                          <constructor-arg name="Name" value="A Foo" />
                   </object>
                   <ref object="SpecialFoo"/>
           </list>
    <property/>
</object>

таким:

Define(() => BarFactory.Create())
            .As<IBar>()
            .Set(b => b.TestProperty).To(() => "TestValue")
            .Set(b => b.ListProperty).To(() => new List {
                                                            new Foo("A Foo"),
                                                            Wire<IFoo>("SpecialFoo")
                                                        });

Текст взят из поста Recoil 1.1.0 released!

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.