Существует ли сокращенный синтаксис для использования строк подключения из файла конфигурации в Castle Windsor 3.0? - PullRequest
0 голосов
/ 02 апреля 2012

Я пытаюсь подключить Windsor 3.0 для вставки строк подключения из моего файла web.config в классы репозитория.

На данный момент у меня есть этот синтаксис:

container.Register(
  Component
    .For<IFooRepository>().ImplementedBy(SqlFooRepository)
    .DependsOn(
       Property
         .ForKey("sqlConnectionString")
         .Eq(ConfigurationManager.ConnectionStrings["foo"].ConnectionString)
    )
  )
)

Учитывая, что это должно быть довольно распространенным случаем, есть ли какая-то синтаксическая стенография в Виндзоре, которую я могу использовать, чтобы обойти явный вызов ConfigurationManager.ConnectionStrings?

1 Ответ

4 голосов
/ 03 апреля 2012

Нет. ИМХО не стоит добавлять его в Виндзор. Вы можете легко написать такое сокращение с помощью метода расширения:

public static class PropertyKeyExtensions {
    public static Property UsingConnectionString(this PropertyKey p, string name) {
        return p.Eq(ConfigurationManager.ConnectionStrings[name].ConnectionString);
    }
}
...

container.Register(
  Component
    .For<IFooRepository>().ImplementedBy(SqlFooRepository)
    .DependsOn(
       Property
         .ForKey("sqlConnectionString")
         .UsingConnectionString("foo"))
    )
  )
)
...