Le service demandé n'a pas été enregistré ! AutoFac L'Injection De Dépendance
Je suis simplement en train d'essayer d'utiliser AutoFac à résoudre des dépendances, mais il jette exception comme
Le service demandé, 'ProductService" n'a pas été enregistré. Pour éviter cette exception, soit enregistrer un composant de fournir un service
ou utiliser IsRegistered()...
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<ProductService>().As<IProductService>();
using (var container = builder.Build())
{
container.Resolve<ProductService>().DoSomething();
}
}
}
public class ProductService : IProductService
{
public void DoSomething()
{
Console.WriteLine("I do lots of things!!!");
}
}
public interface IProductService
{
void DoSomething();
}
Ce que j'ai fait de mal ?
OriginalL'auteur Ryu Kaplan | 2013-03-16
Vous devez vous connecter pour publier un commentaire.
Avec l'énoncé:
Dit Autofac chaque fois que quelqu'un essaie de résoudre un
IProductService
leur donner uneProductService
Donc, vous avez besoin pour résoudre le
IProductService
et à laProductService
:Ou si vous voulez garder la
Resolve<ProductService>
enregistrer avec AsSelf:dans votre commentaire, je vois pas d'exemple pour
container.Resolve
... cependant, je ne pense pas que dans NopCommerce ils ont changé quelque chose au sujet de la façon dont Autofac œuvres. Si vous êtes nouveau à l'Autofac vous devriez commencer à la documentation officielle: code.google.com/p/autofac/wiki/GettingStartedJ'ai l'immense nombre de clases qui contient XService mettre en œuvre IXService. e.g ProductService mettre en œuvre IProductService. De toute façon pour enregistrer tous ces types.
OriginalL'auteur