Можно ли для конфигурации контейнера Spring.NET использовать Fluent синтаксис как в большинстве других ioc фреймворках?
Fluent синтаксис для Spring.NET
3
Спросил
Лучший ответ:
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!