Я только что начал экспериментировать с Web Api 2 и StructureMap, установив пакет StructureMap.MVC4 Nuget. Кажется, все работает нормально, пока я не попытался зарегистрировать пользователя. Я получил эту ошибку, когда эта реализация IHttpControllerActivator пытался создать экземпляр контроллера:StructureMap, Web Api 2 и ошибка IUserStore
public class ServiceActivator : IHttpControllerActivator
{
public ServiceActivator(HttpConfiguration configuration) { }
public IHttpController Create(HttpRequestMessage request
, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
var controller = ObjectFactory.GetInstance(controllerType) as IHttpController;
return controller;
}
}
ошибка я получил:
StructureMap Exception Code: 202
No Default Instance defined for PluginFamily Microsoft.AspNet.Identity.IUserStore`1[[Microsoft.AspNet.Identity.EntityFramework.IdentityUser, Microsoft.AspNet.Identity.EntityFramework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.AspNet.Identity.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Я понимаю, что ошибка, но не совсем уверен, как решить эту проблему , Правильно ли считать, что сканер по умолчанию в StructureMap не смог найти стандартную реализацию IUserStore? Вот код инициализации, который я использовал:
ObjectFactory.Initialize(x => x.Scan(scan =>
{
scan.AssembliesFromApplicationBaseDirectory();
scan.WithDefaultConventions();
}));
Любые идеи, пожалуйста? Благодарю.
EDIT: Я думаю, что я, возможно, решить исходную проблему с помощью этого:
x.For<Microsoft.AspNet.Identity.IUserStore<IdentityUser>>()
.Use<UserStore<IdentityUser>>();
Но теперь есть еще один экземпляр по умолчанию StructureMap не может работать - DbContext. Вот следующее сообщение об ошибке я получаю:
ExceptionMessage=StructureMap Exception Code: 202
No Default Instance defined for PluginFamily System.Data.Entity.DbContext, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Теперь я действительно потерял ...