2013-12-20 3 views
0

Я создаю структуру mvc4 решения application.The приводятся ниже: enter image description hereStructureMap с ФОС и Entityframework

Здесь DAO слой реализован в слое Data.EntityFramework.Service создают услуги и ServiceHost для размещения services.CORE слоя предназначен для регистрации всех слоев.

enter image description here

данных Entity Слой:

enter image description here

Я зову UnitOfWork от servicelayer, как показано ниже

public class CandidateService : ICandidateService 
     { 
      private readonly IUnitOfWork _unitOfWork; 

      public CandidateService(IUnitOfWork unitOfWork) 
      { 
       this._unitOfWork = unitOfWork; 
      } 

      //public IList<VW_CANDBASICSEARCH> GetAll() 
      //{ 
      // try 
      // { 
      //  var lstCandidate = _unitOfWork.Repository<VW_CANDBASICSEARCH>().All(); 
      //  var list = lstCandidate.ToList<VW_CANDBASICSEARCH>(); 
      //  return list; 
      // } 
      // catch (Exception er) 
      // { 
      //  throw er; 
      // } 
      //} 

      public IList<VW_CANDBASICSEARCH> GetSearchCandidate(string strName, string strLocation, string strProfession, string strSkill) 
      { 
       var lstCandidate = _unitOfWork.Repository<VW_CANDBASICSEARCH>().All().ToList<VW_CANDBASICSEARCH>(); 
       var lstSearchCan = from can in lstCandidate 
            where ((strName == null || strName.Length == 0 || (can.CAND_NAME).ToUpper().Contains(strName.ToUpper())) 
              && (strLocation == null || strLocation.Length == 0 || can.CAND_LOCATION.Equals(strLocation)) 
              && (strProfession == null || strProfession.Length == 0 || can.CAND_PROFESSION.Equals(strProfession)) 
              && (strSkill == null || strSkill.Length == 0 || can.CAND_SKILL.Equals(strProfession))) 
            select can; 
       return lstSearchCan.ToList<VW_CANDBASICSEARCH>(); 
      } 


      public TBLCANDIDATE_HEADER CreateCandidate(TBLCANDIDATE_HEADER Candidate) 
      { 
       Candidate.ObjectState = ObjectState.Added; 
       _unitOfWork.Repository<TBLCANDIDATE_HEADER>().Insert(Candidate); 
       return Candidate; 

      } 
     } 

В ОСНОВНОЙ слое я регистрации данных и бизнес, как следующее ;

public class BusinessLogicServiceModule : Registry 
     { 


      public BusinessLogicServiceModule() 
      { 
       For(typeof(IHrmsRepository<>)).Use(typeof(Repository<>)); 
       For<IUnitOfWork>().Use<UnitOfWork>(); 


      } 
     } 

В службах хоста я реализую эти следующую http://lostechies.com/jimmybogard/2008/07/30/integrating-structuremap-with-wcf/ В IHRMS.WEB я пишу в Global.asax.cs Application_Start следующих

protected void Application_Start() 
      { 
       AreaRegistration.RegisterAllAreas(); 

       WebApiConfig.Register(GlobalConfiguration.Configuration); 
       FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
       RouteConfig.RegisterRoutes(RouteTable.Routes); 


       ObjectFactory.Configure(x => x.AddRegistry(new BusinessLogicServiceModule())); 

       ObjectFactory.Configure(x => x.AddRegistry(new ControllerDependency())); 
       ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory()); 

       BundleConfig.RegisterBundles(BundleTable.Bundles); 

       AuthConfig.RegisterAuth(); 
      } 

Но когда я бег он дает следующее ошибка: StructureMap Код исключения: 202 Нет по умолчанию Instance определено для PluginFamily IHRMS.DAO.Infrastructure.IUnitOfWork, IHRMS.DAO, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = нуль

Я использую Structuremap как DI. Может ли кто-нибудь мне помочь?

ответ

0

Ваша конфигурация выглядит хорошо для меня.

Я обычно решить эти неоднозначные ошибки StructureMap, выполнив следующие действия:

  • проверить свои инъекционные классы:
    • общественные Конструкторы
    • зависимости от параметров строительства также были определены в реестре
  • шаг за шагом «наращивание»
    • убедитесь, что зависимости определяются, прежде чем они называются для
  • убедиться в AssertConfigurationIsValid и WhatDoIHave методов выходные в ObjectFactory, чтобы визуально подтвердить, что вы имеете действительную конфигурацию зависимостей

Большинство вопросов разрешаются на шаге проверки рабочего процесса, если конфигурация зависимой конфигурации «после» запрошена для структуры, вы вызовете ошибку 202.

Также, чтобы подтвердить настройку IUnitOfWork и зависимость IUnitOfWork - это тот же самый объект права (IE: они являются тем же самым пространством имен, а что нет)?

Извините, у меня нет ответа в это время, но если у вас есть дополнительная информация, я был бы рад помочь.

Thanks, wm