Esempio n. 1
0
        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();
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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>();
        }
Esempio n. 6
0
        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);
        }