Я знаю, что Spring.NET поддерживает «Spring Expressions» — текст, который анализируется во время выполнения как код — и что их можно объявить в вашей конфигурации XML.
Но можете ли вы определить лямбда-выражение, проанализировать его и использовать в качестве строго типизированного делегата в вашем коде, скажем, в качестве параметра конструктора?
Что-то вроде этого:
<object name="Page1To2Transition"
type="XmlVsDslConfig.PageTransition, XmlVsDslConfig">
<constructor-arg type="string" value="Page1-Page2"/>
<constructor-arg ref="Page1"/>
<constructor-arg ref="Page2"/>
<property name="CanTransition" expression="#CanTransition = {|p| true }"/>
</object>
где конструктор PageTransition выглядит так:
public PageTransition (
String name,
Page from,
Page to,
Func<Page, bool> canTransition )
{/*...*/}