title: How to configure Web API 2 and Structure Map
body: <p>I've trawled through multiple blogs etc trying to find out how to configure StructureMap with Web API 2 and none of the implementations worked for me. The confusion seems to be around the different IDependency Resolver that MVC uses and the one that Web API uses.</p>
  
  <p>Firstly, which is the correct Nuget package and secondly, how do you configure it with a pure Web API 2 project?</p>
  
  <p>Thanks</p>
  
  <p>This is what I have so far and it seems to be working. Is this correct?</p>
  
  <pre><code> public class StructureMapControllerActivator : IHttpControllerActivator
  {
      private readonly IContainer _container;
  
      public StructureMapControllerActivator(IContainer container)
      {
          if (container == null) throw new ArgumentNullException("container");
          _container = container;
      }
  
      public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
      {
          try
          {
              var scopedContainer = _container.GetNestedContainer();
              scopedContainer.Inject(typeof(HttpRequestMessage), request);
              request.RegisterForDispose(scopedContainer);
              return (IHttpController)scopedContainer.GetInstance(controllerType);
          }
          catch (Exception e)
          {
              // TODO : Logging
              throw e;
          }
      }
  }
  </code></pre>