public static IWindsorContainer Setup() { //Container.GetContainer().AddFacility("logging", new LoggingFacility(LoggerImplementation.Log4net, "EdiDocsIn.log4net.xml")); CommonSetup.Setup(); Container.Register <IBusinessPartnerSpecificServiceResolver, BusinessPartnerSpecificServiceResolver>(); Container.Register <IFileUtilities, FileUtilities>("fileUtilities"); // Container.Register<IFileCreationService, FedexFileCreationService>("FEDEXFileService"); Container.Register <IDocumentParser <OrderRequestReceivedMessage>, Fedex850Parser>(); Container.Register <ISplitter, Splitter>(); Container.Register <IAddressParser, AddressParser>(); Container.Register <IPOLineParser, Fedex850LineParser>(); Container.Register <ICreateOrderMessagePublisher, CreateOrderMessagePublisher>(); Container.Register <IAFPSTConfiguration, AFPSTConfiguration>(); Container.Register <ICreateEdiContentFrom <OrderRequestReceivedMessage>, Fedex855Creator>(); Container.Register <IBuildValueFactory, FedExBuildValueFactory>(); Container.Register <ISegmentFactory, SegmentFactory>("segFactory"); var configuration = Container.Resolve <IAFPSTConfiguration>(); var connectionKey = configuration.TestMode == false ? "SQLConnection" : "SQLConnectionTest"; var createnewTables = configuration.TestMode; Container.Register <ISessionSource, EdiSessionSource>(typeof(EdiSessionSource).Name) .WithDependencies(new { connectionKey, createnewTables }); Container.Register <IControlNumberRepository, ControlNumberRepository>("controlNumRepo", LifestyleType.Transient); Container.Register <IIncomingDocumentsRepository, IncomingDocumentsRepository>("incomingDocsRepository", LifestyleType.Transient); Container.Register <IFileProcessingService, FedexFileProcessingService>(); Container.Register <IEDIResponseReferenceRecorder, EDIResponseReferenceRecorder>(); Container.Register <IFedexFileParser, FedexFileParser>("srv").WithDependencies(new { elDelim = "~", segDelim = @"\" }); return(Container.GetContainer()); }