diff --git a/AspNetDependencyInjection.WebApi/DependencyInjectionWebApiDependencyResolver.cs b/AspNetDependencyInjection.WebApi/DependencyInjectionWebApiDependencyResolver.cs
index 94c190a..59b06bb 100644
--- a/AspNetDependencyInjection.WebApi/DependencyInjectionWebApiDependencyResolver.cs
+++ b/AspNetDependencyInjection.WebApi/DependencyInjectionWebApiDependencyResolver.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Dependencies;
@@ -22,6 +23,8 @@ internal DependencyInjectionWebApiDependencyResolver( ApplicationDependencyInjec
{
this.di = di ?? throw new ArgumentNullException(nameof(di));
this.rootServiceProvider = rootServiceProvider ?? throw new ArgumentNullException( nameof( rootServiceProvider ) );
+
+ GlobalConfiguration.Configuration.DependencyResolver = this;
}
/// When is for a then the type will be resolved, otherwise an exception is thrown. Otherwise this method returns null if the type cannot be resolved or created.
@@ -39,7 +42,15 @@ public Object GetService(Type serviceType)
return this.di.ObjectFactoryCache.GetRequiredRootService( serviceType, useOverrides: true );
}
- return this.di.ObjectFactoryCache.TryGetRootService( serviceType, useOverrides: true, out Object resolved ) ? resolved : null;
+ try
+ {
+ return this.di.ObjectFactoryCache.TryGetRootService( serviceType, useOverrides: true, out Object resolved ) ? resolved : null;
+ }
+ catch
+ {
+ // ASP.Net WebApi: all other dependencies are optional
+ return null;
+ }
}
/// Calls by converting to .
@@ -92,7 +103,15 @@ public Object GetService( Type serviceType )
return this.di.ObjectFactoryCache.GetRequiredService( this.GetServiceProvider, serviceType, useOverrides: true );
}
- return this.di.ObjectFactoryCache.TryGetService( this.GetServiceProvider, serviceType, useOverrides: true, out Object resolved ) ? resolved : null;
+ try
+ {
+ return this.di.ObjectFactoryCache.TryGetService( this.GetServiceProvider, serviceType, useOverrides: true, out Object resolved ) ? resolved : null;
+ }
+ catch
+ {
+ // ASP.Net WebApi: all other dependencies are optional
+ return null;
+ }
}
/// Calls by converting to .