0
여기 내 Installer.cs입니다 :ComponentNotFoundException 성 윈저
class Installer : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container
.Register(Component.For<IDbContext>()
.ImplementedBy<ApplicationDbContext>()
.LifeStyle.PerThread
);
container
.Register(Component.For(typeof(IRepository<>))
.ImplementedBy(typeof(Repository<>))
.LifeStyle.PerThread
);
container
.Register(Component.For<IServiceReadCity>()
.ImplementedBy<ServiceReadCity>()
.LifeStyle.PerThread
);
}
}
여기
내 Program.cs :
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
System.Data.Entity.SqlServer.SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=12.0.0.0, Culture=neutral, PublicKeyToken=898989899898989898";
var container = new WindsorContainer();
container.Install(FromAssembly.This());
IServiceReadCity _cityReadService = container.Resolve<IServiceReadCity>();
var cities = _cityReadService.GetListQuery();
이것은 콘솔 응용 프로그램. 나는이 예외가 :
{ "는 Reveal.Domain.Location.Service.Read.IServiceReadCity이 발견 된 서비스를 지원하기위한 어떤 구성 요소 없다"}이 줄에 을 :
IServiceReadCity _cityReadService = container.Resolve<IServiceReadCity>();
수 당신은 내가 뭘 잘못하고 어떻게 해결할 지 말해 주시겠습니까? 감사.
당신이 당신의 설치 프로그램이 실제로 실행 확인하기 위해 브레이크 포인트나요 문제를 해결해야 만들기? 또한 디버그 중에 컨테이너를 검사하여 등록 된 서비스와 해당 서비스를 지원하는 구현을 확인할 수 있습니다. – Charleh
@Charleh 설치 프로그램에 중단 점을 넣었습니다. 실행되지 않습니다. 어떻게 작동시킬 수 있습니까? 감사. – jason
아마도 설치 프로그램을'public'해야 할 것입니다. 윈저가'IWindsorInstaller' 인터페이스를 구현하는 public 타입을 찾기 위해 어셈블리를 검색한다고 생각합니다. Windsor가 찾지 못해서 Windsor가 실행하지 않는 것 같습니다. – Charleh