Problème avec injection de dépendances
Bonjour,
Je suis en train de créer un web service utilisant l'injection de dépendance. Jusque là pas de problème. Par contre quand j'essai de préciser quelle classe il faut utiliser pour l'un de mes controller, le WS me renvoi l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9
|
Resolution of the dependency failed, type = \"TEST.WMS.Interface.IAdsWms\", name = \"DefaultRepository\".\r\n
Exception occurred while: while resolving.\r\n
Exception is: InvalidOperationException - The current type, ADS.TEST.Interface.IAdsWms, is an interface and cannot be constructed. Are you missing a type mapping?\r\n
-----------------------------------------------\r\n
At the time of the exception, the container was:\r\n
\r\n
Resolving TEST.WMS.Interface.IAdsWms,DefaultRepository\r\n
"} System.Exception {Microsoft.Practices.Unity.ResolutionFailedException} |
Le code que j'utilise pour influencer l'utilisation d'une classe pour mon controller est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
public class UnityControllerFactory : IHttpControllerActivator
{
private readonly IUnityContainer container;
private readonly DefaultHttpControllerActivator defaultActivator;
public UnityControllerFactory(IUnityContainer container)
{
this.container = container;
defaultActivator = new DefaultHttpControllerActivator();
}
public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
if (controllerType == typeof(WMSController))
{
var queryVals = request.RequestUri.ParseQueryString();
var cls = queryVals["class"];
if (String.IsNullOrEmpty(cls))
{
cls = "DefaultRepository";
}
IAdsWms o = container.Resolve<IAdsWms>(cls);
return new WMSController(o);
}
return defaultActivator.Create(request, controllerDescriptor, controllerType);
}
} |
Je n'arrive pas à résoudre ce problème. Si quelqu'un pouvait m'aider ce serai vraiment génial.
Merci par avance.