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)
{