Я пытаюсь реализовать демо-приложение для понимания Unity и IoC. Но я как бы ударил.Unity и IoC не работает
У меня ошибка:
An error occurred when trying to create a controller of type 'ProductController'. Make sure that the controller has a parameterless public constructor.
Вот краткий обзор того, что я делаю:
У меня есть пять проектов:
- Модель данных
- Бизнес Услуги
- WebApi
- Бизнес Сущность
- резольвера
Я после этого кода проекта урока: https://www.codeproject.com/articles/997216/restful-day-sharp-resolve-dependency-of-dependenci
Я завершил день 3. но я не в состоянии решить эту проблему.
Это моя WebApi
Функция Unity RegisterTypes.
public static void RegisterTypes(IUnityContainer container)
{
// NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
// container.LoadConfiguration();
// TODO: Register your types here
//container.RegisterType<IProductServices, ProductServices>();
//Component initialization via MEF
ComponentLoader.LoadContainer(container, ".\\bin", "WebApi.dll");
ComponentLoader.LoadContainer(container, ".\\bin", "BusinessServices.dll");
}
Вот ProductController Конструктор
public class ProductController : ApiController
{
private readonly IProductServices _productServices;
#region Public Constructor
/// <summary>
/// Public constructor to initialize product service instance
/// </summary>
public ProductController(IProductServices productServices)
{
_productServices = productServices;
}
#endregion
BusinessServices
проект регистрации зависимостей в DependencyResolver
класса
using Resolver;
using System.ComponentModel.Composition;
namespace BusinessServices
{
[Export(typeof(IComponent))]
public class DependencyResolver : IComponent
{
public void SetUp(IRegisterComponent registerComponent)
{
registerComponent.RegisterType<IProductServices, ProductServices>();
}
}
}
Кто-нибудь может мне помочь?
Спасибо!
ну, у вас есть конструктор с параметром less в типе ProductController? –
Нет, поскольку я использую Unity и IoC, я думаю, что он разрешит это. (он должен использовать схему впрыска базы конструктора) – Saadi
Зарегистрирована ли служба «IProductServices»? –