StructureMap: Экземпляр по умолчанию не зарегистрирован и не может быть определен автоматически - PullRequest
0 голосов
/ 10 июля 2020

Я использую этот код в глобальном

  protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        setDbInitializer();
       
        IContainer container = new Container();
        container.Configure(c => {
            c.IncludeRegistry<BusinessRegistry>();
        });

        ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
    }

    protected void Application_EndRequest(object sender, EventArgs e)
    {
        HttpContextLifecycle.DisposeAndClearAll();
    }

    public class StructureMapControllerFactory : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
                throw new InvalidOperationException(string.Format("Page not found: {0}", requestContext.HttpContext.Request.RawUrl));
            return SmObjectFactory.Container.GetInstance(controllerType) as Controller;
        }
    }

    private static void setDbInitializer()
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<BehticketContext, Configuration>());
        SmObjectFactory.Container.GetInstance<IUnitOfWork>().ForceDatabaseInitialize();
    }

, но получаю ошибку в SmObjectFactory.Container.GetInstance<IUnitOfWork>().ForceDatabaseInitialize()

StructureMap.StructureMapConfigurationException: 'No default Instance is registered and cannot be automatically determined for type 'Behticket.DataAccess.IUnitOfWork'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...