Я хочу зарегистрировать общий базовый репозиторий, который принимает объект и ключ объекта, у меня есть IBaseRepo и его реализация. Я использовал эту строку кода ниже
container.Register(typeof(IRepository<,>), typeof(RepositoryBase<,>),
made: FactoryMethod.ConstructorWithResolvableArgumentsIncludingNonPublic);
но я получаю ошибку ниже
InvalidOperationException: Произошла ошибка при попытке создать контроллер типа «ValuesController». Убедитесь, что у контроллера есть публичный конструктор без параметров.
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()",
Внутреннее исключение:
DryIoc.ContainerException: тип реализации не указан при использовании автоматического выбора конструктора: IRepository {ReturnDefault} в качестве параметра «пользователь»
в UserRepository: IUserRepository {ReturnDefault} в качестве параметра "репозиторий"
в ограниченном ValuesController {ServiceKey=DefaultKey(0), ReturnDefault}
at DryIoc.Throw.ThrowIfNull[T](T arg, Int32 error, Object arg0, Object arg1, Object arg2, Object arg3) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxx\\xxx\\DryIoc\\Container.cs:line 11562
at DryIoc.FactoryMethod.<>c__DisplayClass5_0.<Constructor>b__0(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 4426
at DryIoc.ReflectionFactory.ClosedGenericFactoryGenerator.GetGeneratedFactory(Request request, Boolean ifErrorReturnDefault) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8866
at DryIoc.Container.DryIoc.IContainer.ResolveFactory(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 852
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8713
at DryIoc.Factory.GetExpressionOrDefault(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8038
at DryIoc.ReflectionFactory.CreateExpressionOrDefault(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8714
at DryIoc.Factory.GetExpressionOrDefault(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8038
at DryIoc.Factory.GetDelegateOrDefault(Request request) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 8162
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, Object serviceKey, Boolean ifUnresolvedReturnDefault, Type requiredServiceType, RequestInfo preResolveParent, IScope scope) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 524
at DryIoc.Container.ResolveAndCacheDefaultDelegate(Type serviceType, Boolean ifUnresolvedReturnDefault) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 563
at DryIoc.Container.DryIoc.IResolver.Resolve(Type serviceType, Boolean ifUnresolvedReturnDefault) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\Container.cs:line 477
at DryIoc.WebApi.DryIocDependencyScope.GetService(Type serviceType) in C:\\Users\\Workload\\documents\\visual studio 2017\\Projects\\xxxxxx\\xxxxxx\\DryIoc\\WebApi\\DryIocWebApi.cs:line 216
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
RepositoryBase
это абстрактный класс? - person dadhi   schedule 10.09.2017