public void LoadXmlFromDefault() { var xml = @"<ApiTool> <Targets> <Target Name='target1' Alias='alias1' /> </Targets> </ApiTool> "; var file = new FileInfo("TargetMap.xml"); try { using (var fs = file.OpenWrite()) using (var writer = new StreamWriter(fs)) { writer.Write(xml); } var map = new TargetMapper(); Assert.True(map.LoadFromConfig(String.Format(@"{0}\{1}", Directory.GetCurrentDirectory(), "TargetMap.xml"))); Assert.Equal("target1", map.GetNames("alias1").Single()); } finally { file.Delete(); } }
public static void LoadXmlFromDefault() { var xml = @"<ApiTool> <Targets> <Target Name='target1' Alias='alias1' /> </Targets> </ApiTool> "; var file = new FileInfo("TargetMap.xml"); try { using (var fs = file.OpenWrite()) { using (var writer = new StreamWriter(fs)) { writer.Write(xml); } } var map = new TargetMapper(); Assert.True(map.LoadFromConfig(file.FullName)); Assert.Equal("target1", map.GetNames("alias1").Single()); } finally { file.Delete(); } }
public static IUnityContainer Build(ICommandLineOptions options, ProductInformation productInformation) { var container = new UnityContainer(); var targetMapper = new TargetMapper(); targetMapper.LoadFromConfig(options.TargetMapFile); container.RegisterInstance <ICommandLineOptions>(options); container.RegisterInstance <ITargetMapper>(targetMapper); // For debug purposes, the FileOutputApiPortService helps as it serializes the request to json and opens it with the // default json handler. To use this service, uncomment the the next line and comment the one after that. //container.RegisterType<IApiPortService, FileOutputApiPortService>(new ContainerControlledLifetimeManager()); container.RegisterInstance <IApiPortService>(new ApiPortService(options.ServiceEndpoint, productInformation)); container.RegisterType <IEnumerable <IgnoreAssemblyInfo>, FileIgnoreAssemblyInfoList>(new ContainerControlledLifetimeManager()); container.RegisterType <IDependencyFinder, ReflectionMetadataDependencyFinder>(new ContainerControlledLifetimeManager()); container.RegisterType <IDependencyFilter, DotNetFrameworkFilter>(new ContainerControlledLifetimeManager()); container.RegisterType <IReportGenerator, ReportGenerator>(new ContainerControlledLifetimeManager()); container.RegisterType <ApiPortService>(new ContainerControlledLifetimeManager()); container.RegisterType <IFileSystem, WindowsFileSystem>(new ContainerControlledLifetimeManager()); container.RegisterType <IFileWriter, ReportFileWriter>(new ContainerControlledLifetimeManager()); container.RegisterType <IRequestAnalyzer, RequestAnalyzer>(new ContainerControlledLifetimeManager()); container.RegisterType <IAnalysisEngine, AnalysisEngine>(new ContainerControlledLifetimeManager()); container.RegisterType <ConsoleApiPort>(new ContainerControlledLifetimeManager()); container.RegisterType <ICollection <IReportWriter> >(new ContainerControlledLifetimeManager(), new InjectionFactory(WriterCollection)); container.RegisterType <IApiPortOptions>(new ContainerControlledLifetimeManager(), new InjectionFactory(GetOptions)); container.RegisterType <DocIdSearchRepl>(new ContainerControlledLifetimeManager()); container.RegisterType <ISearcher <string>, ApiPortServiceSearcher>(new ContainerControlledLifetimeManager()); // Register the default output format name container.RegisterInstance(DefaultOutputFormatInstanceName, "Excel"); if (Console.IsOutputRedirected) { container.RegisterInstance <IProgressReporter>(new TextWriterProgressReporter(Console.Out)); } else { container.RegisterType <IProgressReporter, ConsoleProgressReporter>(new ContainerControlledLifetimeManager()); } #if FEATURE_DESKTOP_CONFIGURATION // Unity configuration is only available in its desktop package // Load any customizations via Unity var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(GetApplicationDirectory(), "unity.config") }; var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var unitySection = (UnityConfigurationSection)configuration.GetSection("unity"); return(unitySection == null ? container : container.LoadConfiguration(unitySection)); #else // FEATURE_DESKTOP_CONFIGURATION // TODO : Allow runtime configuration through some non-.config means? return(container); #endif // FEATURE_DESKTOP_CONFIGURATION }
public static IUnityContainer Build(ICommandLineOptions options, ProductInformation productInformation) { var container = new UnityContainer(); var targetMapper = new TargetMapper(); targetMapper.LoadFromConfig(); var ignoreAssemblyList = new FileIgnoreAssemblyInfoList(options.RequestFlags.HasFlag(AnalyzeRequestFlags.NoDefaultIgnoreFile), options.IgnoredAssemblyFiles); container.RegisterInstance(options); container.RegisterInstance <ITargetMapper>(targetMapper); container.RegisterInstance <IEnumerable <IgnoreAssemblyInfo> >(ignoreAssemblyList); // For debug purposes, the FileOutputApiPortService helps as it serializes the request to json and opens it with the // default json handler. To use this service, uncomment the the next line and comment the one after that. //container.RegisterType<IApiPortService, FileOutputApiPortService>(new ContainerControlledLifetimeManager()); container.RegisterInstance <IApiPortService>(new ApiPortService(options.ServiceEndpoint, productInformation)); container.RegisterType <IDependencyFinder, ReflectionMetadataDependencyFinder>(new ContainerControlledLifetimeManager()); container.RegisterType <IReportGenerator, ReportGenerator>(new ContainerControlledLifetimeManager()); container.RegisterType <ApiPortService>(new ContainerControlledLifetimeManager()); container.RegisterType <IFileSystem, WindowsFileSystem>(new ContainerControlledLifetimeManager()); container.RegisterType <IFileWriter, ReportFileWriter>(new ContainerControlledLifetimeManager()); container.RegisterType <IRequestAnalyzer, RequestAnalyzer>(new ContainerControlledLifetimeManager()); container.RegisterType <IAnalysisEngine, AnalysisEngine>(new ContainerControlledLifetimeManager()); container.RegisterType <ICollection <IReportWriter> >(new ContainerControlledLifetimeManager(), new InjectionFactory(WriterCollection)); if (Console.IsOutputRedirected) { container.RegisterInstance <IProgressReporter>(new TextWriterProgressReporter(Console.Out)); } else { container.RegisterType <IProgressReporter, ConsoleProgressReporter>(new ContainerControlledLifetimeManager()); } // Load any customizations via Unity var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(GetApplicationDirectory(), "unity.config") }; var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var unitySection = (UnityConfigurationSection)configuration.GetSection("unity"); return(unitySection == null ? container : container.LoadConfiguration(unitySection)); }
public void LoadXmlFromFile() { var map = new TargetMapper(); Assert.False(map.LoadFromConfig("doesnotexist.xml")); }