Регистрация структурной карты с открытыми универсальными типами приводит к ошибке
Открытый универсальный тип
public interface ICrudRepository<TEntity, in TKey> where TEntity : class, new()
{
Реализация
public class EmployeeRepository:ICrudRepository<Employee,int>
{
Постановка на учет
private static void OnRegistry(ConfigurationExpression iocLib)
{
iocLib.Scan(scanner =>
{
//bind interfaces with their implementations
scanner.WithDefaultConventions();
//scan for types from below projects
scanner.IncludeNamespace("MyApp.Repository");
scanner.IncludeNamespace("MyApp.Data");
//bind to repository base
scanner.AddAllTypesOf(typeof(ICrudRepository<,>));
//bind crudrepository interface with the class that implements it
scanner.ConnectImplementationsToTypesClosing(typeof(ICrudRepository<,>));
});
использование
public class HomeController : Controller
{
private readonly ICrudRepository<Employee, int> _employeeRepository;
public HomeController(ICrudRepository<Employee, int> employeeRepository)
{
_employeeRepository = employeeRepository;
}
Проблема:
Интерфейс ICrudRepository
находится внутри проекта MyApp.Repository, а реализация находится внутри проекта MyApp.Data. Меня приветствуют с исключением, как показано ниже при вызове HomeController. Не знаете, что не так?
Экземпляр по умолчанию не зарегистрирован и не может быть автоматически определен для типа ICrudRepository
<
Сотрудник, Int32>
Конфигурация ICrudRepository не указана<
Сотрудник, Int32>
Вот свалка Что у меня есть?
===================================================================================================
PluginType Namespace Lifecycle Description Name
---------------------------------------------------------------------------------------------------
Func<TResult> System Transient Open Generic Template for Func<> (Default)
---------------------------------------------------------------------------------------------------
Func<T, TResult> System Transient Open Generic Template for Func<,> (Default)
---------------------------------------------------------------------------------------------------
IContainer StructureMap Transient Object: StructureMap.Container (Default)
---------------------------------------------------------------------------------------------------
Lazy<T> System Transient Open Generic Template for Func<> (Default)
===================================================================================================