Unity config newbie, j'essaie de mettre en œuvre cela dans mon projet. Cependant, je suis coincé.Configurer Unity pour travailler avec Web api
Je reçois l'erreur suivante: Le type actuel, System.Web.Mvc.IControllerFactory, est une interface et ne peut pas être construit. Manquez-vous un mappage de type?
ContainerClass
public class ContainerBootstrapper
{
public static void ConfigureUnityContainer()
{
//simple registeration
container.RegisterType<IProduct, ProductHelper>(); //maps interface to a concrete type
System.Web.Mvc.DependencyResolver.SetResolver(new MyProjectControllerDependency(container));
}
}
DependencyResolver
public class MyProjectControllerDependency : IDependencyResolver
{
private IUnityContainer _container;
public MyProjectControllerDependency(IUnityContainer container)
{
this._container = container;
}
public object GetService(Type serviceType)
{
return _container.Resolve(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _container.ResolveAll(serviceType);
}
Controller:
public class ProductController : ApiController
{
private readonly IProduct _iproduct;
public ProductController(IProduct product)
{
this._iproduct = product;
}
//controller methods
}
Interface
public interface IProduct
{
List<ProductViewModel> GetProductByBarcode(string value);
string GetProductPrice(string value);
}
Aide
public class ProductHelper : IProduct
{
//private readonly IProduct _iproduct;
//public ProductHelper(IProduct iproduct)
//{
// this._iproduct = iproduct;
//}
public List<ProductViewModel> GetProductByBarcode(string value)
{
throw new NotImplementedException();
}
public string GetProductPrice(string value)
{
throw new NotImplementedException();
}
}
Je ne comprends pas, ce que je suis absent? Est-ce que quelqu'un peut-il me montrer la bonne direction.
Utilisez-vous Unity.Mvc? –
J'ai installé l'unité via Nuget, je ne suis pas sûr. @ChetanRanpariya – Haris
Pour les projets MVC et WebAPI, Unity.MVC est requis. Vous n'aurez même pas besoin de créer DependencyResolver personnalisé. Installez Unity.Mvc et recherchez des exemples dans google. C'est facile à configurer et à brancher. –