Автоматическая передача параметров - PullRequest
1 голос
/ 23 января 2009

Я пытался интегрировать последнюю версию autofac (1.3.3.54) и столкнулся со следующей проблемой.

Рекомендуемый способ использования параметров в обратном вызове Register согласно вики-коду Google для проекта:

builder.Register ((c, p) => новый Foo (p.Get ("arg1")));

Однако это не скомпилируется с упомянутой версией кода автофака. Я просмотрел источник и вижу, что p - это IEnumerable (ComponentActivatorWithParameters). Является ли код устаревшим по отношению к документации?

Ответы [ 2 ]

4 голосов
/ 11 июня 2009

Похоже, что код изменился, а документация в вики не обновлялась. Метод «Get» теперь называется «Named», а класс «Parameter» теперь «NamedParameter». Смотрите следующий пример:

var builder = new ContainerBuilder();
builder.Register((c, p) => new Person(p.Named<string>("name")));

using (var container = builder.Build())
{
    var person = container.Resolve<Person>(new NamedParameter("name", "Fred"));    
}

Надеюсь, кто-то скоро сможет обновить документацию.

0 голосов
/ 30 июня 2009

Я приложил только что собранную документацию для AutoFac 1.3 к выпуску AutoFac # 121 . Я надеюсь, что они возобновят публикацию официальной документации 1.3, по крайней мере, до тех пор, пока они не отключат ветку 1.3 и, соответственно, поддержку .NET 2.0.

...