2009-01-22 4 views
1

J'ai essayé d'intégrer la dernière version d'autofac (1.3.3.54), et je suis confronté au problème suivant.Passage de paramètre Autofac

La méthode recommandée de consommer des paramètres dans le rappel registre, par le wiki de code Google pour le projet est le suivant:

builder.Register ((c, p) => new Foo (p.Get (» arg1 ")));

Cependant, cela ne compilera pas avec la version mentionnée du code autofac. J'ai regardé à travers la source et je vois que p est un IEnumerable (ComponentActivatorWithParameters). Le code est-il périmé en ce qui concerne la documentation?

Répondre

4

Il semble que le code a changé et que la documentation sur le Wiki n'a pas été mise à jour. La méthode "Get" est maintenant "Named" et la classe "Parameter" est maintenant "NamedParameter". Voir l'exemple suivant:

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"));  
} 

Espérons que quelqu'un puisse mettre à jour la documentation bientôt.

+0

Terminé, merci pour le pointeur! –

0

J'ai joint récemment documentation for AutoFac 1.3 à AutoFac numéro #121. J'espère qu'ils continueront à publier la documentation 1.3 officielle au moins jusqu'à ce qu'ils retirent la branche 1.3 et, avec elle, le support pour .NET 2.0.

Questions connexes