J'essaie d'utiliser un décorateur dans Autofac avec une usine de délégué mais je n'arrive pas à l'obtenir pour résoudre les paramètres.Autofac décorateur + délégué usine
public interface IFoo
{ }
public class Foo : IFoo
{
public Foo(string bar)
{ ... }
}
public class DecoratedFoo : IFoo
{
public DecoratedFoo(IFoo decorated)
{ ... }
}
Je voudrais injecter dans un service comme si:
public SomeService(Func<string, IFoo> factory)
{
// I would expect IFoo to be a DecoratedFoo here
IFoo foo = factory("hello");
}
Je composants enregistrés comme ceci:
builder.RegisterType<Foo>()
.Named<IFoo>("foo")
.UsingConstructor(typeof(string));
builder.RegisterDecorator<IFoo>(
(ctx, inner) => new DecoratedFoo(inner),
fromKey: "foo");
Je reçois une erreur disant qu'il ne peut pas résoudre mon barre de paramètres . Ceci est un exemple simplifié mais je ne saurai pas quelle est la valeur de la barre (d'où l'utilisation de l'usine).
Y at-il un moyen d'accomplir ce que je fais?
Merci de m'avoir indiqué le numéro ouvert. – Dismissile