private LoaderMessages FillCatalog() { var assembly = GetType().Assembly; var messages = new LoaderMessages(); //var allLocalAssemblyFileNames = Directory.EnumerateFiles(path, @"*.dll"); //var allLocalAssemblyNames = new HashSet<string>(allLocalAssemblyFileNames.Select(Path.GetFileNameWithoutExtension)); //var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); //var messages = loadedAssemblies // .Where(a => allLocalAssemblyNames.Contains(a.GetName().Name)) // .Where(a => !string.Equals(Path.GetDirectoryName(a.Location), path, StringComparison.OrdinalIgnoreCase)) // .OrderBy(a => a.FullName, StringComparer.OrdinalIgnoreCase) // .Select(assembly => string.Format(CultureInfo.CurrentCulture, "Found assembly '{0}' already loaded from {1}.", assembly.FullName, assembly.CodeBase)) // .ToList(); _kernel.BindExports(assembly, typeof(Infrastructure.Properties.AssemblyKey).Assembly, typeof(Model.Properties.AssemblyKey).Assembly, typeof(Translators.Properties.AssemblyKey).Assembly, typeof(View.Properties.AssemblyKey).Assembly); _kernel.Bind <IExportProvider>().ToConstant(ExportProvider); return(messages); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // modern styling Resources.MergedDictionaries.Add(WpfStyles.GetDefaultStyles()); Resources.RegisterDefaultWindowStyle(); // setup visual composition infrastructure, using Ninject _kernel.BindExports(GetType().Assembly); IExportProvider exportProvider = new ExportProvider(_kernel); _kernel.Bind <IExportProvider>().ToConstant(exportProvider); // setup global export provider locator for XAML ExportProviderLocator.Register(exportProvider); // register all controls tagged as data templates var dynamicDataTemplates = DataTemplateManager.CreateDynamicDataTemplates(exportProvider); Resources.MergedDictionaries.Add(dynamicDataTemplates); MainWindow = exportProvider.GetExportedValue <MainWindow>(); MainWindow.Show(); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var assembly = GetType().Assembly; _kernel.BindExports(assembly, typeof(Infrastructure.Properties.AssemblyKey).Assembly, typeof(Model.Properties.AssemblyKey).Assembly, typeof(Translators.Properties.AssemblyKey).Assembly, typeof(View.Properties.AssemblyKey).Assembly); IExportProvider exportProvider = new ExportProvider(_kernel); _kernel.Bind <IExportProvider>().ToConstant(exportProvider); Resources.MergedDictionaries.Add(TomsToolbox.Wpf.Styles.WpfStyles.GetDefaultStyles()); Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider)); exportProvider.GetExportedValues <IService>().ForEach(service => service.Start()); var tracer = exportProvider.GetExportedValue <ITracer>(); tracer.WriteLine("Started"); tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage); tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, Path.GetDirectoryName(assembly.Location) ?? "unknown"); tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version ?? new Version()); VisualComposition.Error += (_, args) => tracer.TraceError(args.Text); MainWindow = exportProvider.GetExportedValue <MainWindow>(); MainWindow.Show(); }
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { _kernel.BindExports(GetType().Assembly); _kernel.Bind <IExportProvider>().ToConstant(_exportProvider); _kernel.Bind <IServiceProvider>().ToConstant(this); await OpenToolWindowCommand.InitializeAsync(this); }
public Host() { var assembly = GetType().Assembly; _kernel.BindExports(assembly, typeof(Infrastructure.Properties.AssemblyKey).Assembly, typeof(Model.Properties.AssemblyKey).Assembly); IExportProvider exportProvider = new ExportProvider(_kernel); ResourceManager = exportProvider.GetExportedValue <ResourceManager>(); ResourceManager.BeginEditing += ResourceManager_BeginEditing; Configuration = exportProvider.GetExportedValue <Configuration>(); }
private LoaderMessages FillCatalog() { var assembly = GetType().Assembly; var messages = new LoaderMessages(); //var allLocalAssemblyFileNames = Directory.EnumerateFiles(path, @"*.dll"); //var allLocalAssemblyNames = new HashSet<string>(allLocalAssemblyFileNames.Select(Path.GetFileNameWithoutExtension)); //var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); //var messages = loadedAssemblies // .Where(a => allLocalAssemblyNames.Contains(a.GetName().Name)) // .Where(a => !string.Equals(Path.GetDirectoryName(a.Location), path, StringComparison.OrdinalIgnoreCase)) // .OrderBy(a => a.FullName, StringComparer.OrdinalIgnoreCase) // .Select(assembly => string.Format(CultureInfo.CurrentCulture, "Found assembly '{0}' already loaded from {1}.", assembly.FullName, assembly.CodeBase)) // .ToList(); var is64BitProcess = Environment.Is64BitProcess; using var resourceStream = is64BitProcess ? Resource.AsStream("ResXManager.VSIX.Compatibility.x64.dll") : Resource.AsStream("ResXManager.VSIX.Compatibility.x86.dll"); var length = resourceStream.Length; var data = new byte[length]; resourceStream.Read(data, 0, (int)length); var compatibilityLayer = System.Reflection.Assembly.Load(data); _kernel.BindExports(assembly, typeof(Infrastructure.Properties.AssemblyKey).Assembly, typeof(Model.Properties.AssemblyKey).Assembly, typeof(Translators.Properties.AssemblyKey).Assembly, typeof(View.Properties.AssemblyKey).Assembly, compatibilityLayer); _kernel.Bind <IExportProvider>().ToConstant(ExportProvider); return(messages); }