diff --git a/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs b/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs index ca156718fe..b29df8bca1 100644 --- a/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs +++ b/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs @@ -107,12 +107,25 @@ private string FormatResourceName(Type resourceType, IResourceNameFormatter reso /// The assembly to search for resources in. public ServiceDiscoveryFacade AddAssemblyServices(Assembly assembly) { + RegisterServiceImplementations(assembly, typeof(IResourceService<>)); RegisterServiceImplementations(assembly, typeof(IResourceService<,>)); + + RegisterServiceImplementations(assembly, typeof(ICreateService<>)); RegisterServiceImplementations(assembly, typeof(ICreateService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetAllService<>)); RegisterServiceImplementations(assembly, typeof(IGetAllService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetByIdService<>)); RegisterServiceImplementations(assembly, typeof(IGetByIdService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetRelationshipService<>)); RegisterServiceImplementations(assembly, typeof(IGetRelationshipService<,>)); + + RegisterServiceImplementations(assembly, typeof(IUpdateService<>)); RegisterServiceImplementations(assembly, typeof(IUpdateService<,>)); + + RegisterServiceImplementations(assembly, typeof(IDeleteService<>)); RegisterServiceImplementations(assembly, typeof(IDeleteService<,>)); return this; @@ -122,8 +135,19 @@ public ServiceDiscoveryFacade AddAssemblyServices(Assembly assembly) /// Add implementations to container. /// /// The assembly to search for resources in. - public ServiceDiscoveryFacade AddAssemblyRepositories(Assembly assembly) - => RegisterServiceImplementations(assembly, typeof(IEntityRepository<,>)); + public ServiceDiscoveryFacade AddAssemblyRepositories(Assembly assembly) + { + RegisterServiceImplementations(assembly, typeof(IEntityRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityRepository<,>)); + + RegisterServiceImplementations(assembly, typeof(IEntityWriteRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityWriteRepository<,>)); + + RegisterServiceImplementations(assembly, typeof(IEntityReadRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityReadRepository<,>)); + + return this; + } private ServiceDiscoveryFacade RegisterServiceImplementations(Assembly assembly, Type interfaceType) {