コード例 #1
0
        public Shell()
        {
            InitializeComponent();

            AppDomain.CurrentDomain.AssemblyResolve += this.OnAssemblyResolve;

            container =
                new ConfigurationContainer(GetProfile(App.CommandLineParameters.ProfileFileName));

            container.RegisterInstance <IUIServiceWpf>(this);
            container.RegisterInstance <IWindowsFormsEditorService>(this);
            container.RegisterInstance <IUIService>(this);
            container.RegisterInstance <IAssemblyDiscoveryService>(new LoadedAssembliesDiscoveryService());

            container.DiscoverSubstituteTypesFromAssemblies();

            applicationModel = container.Resolve <IApplicationModel>();
            DataContext      = applicationModel;

            applicationModel.New();
            applicationModel.OnCloseAction = () => RequestClose();

            InputBindings.Add(new InputBinding(applicationModel.NewConfigurationCommand, new KeyGesture(Key.N, ModifierKeys.Control)));
            InputBindings.Add(new InputBinding(applicationModel.SaveConfigurationCommand, new KeyGesture(Key.S, ModifierKeys.Control)));
            InputBindings.Add(new InputBinding(applicationModel.SaveAsConfigurationCommand, new KeyGesture(Key.A, ModifierKeys.Control)));
            InputBindings.Add(new InputBinding(applicationModel.OpenConfigurationCommand, new KeyGesture(Key.O, ModifierKeys.Control)));
        }
        /// <summary>
        /// Initializes a new instance of <see cref="SingleHierarchyConfigurationUIHostAdapter"/>.
        /// </summary>
        /// <param name="hostConfiguration">The <see cref="HostAdapterConfiguration"/> that contains information on which assemblies to load into the designer.</param>
        /// <param name="serviceProvider">An <see cref="IServiceProvider"/> used to obtain services.</param>
        public SingleHierarchyConfigurationUIHostAdapter(HostAdapterConfiguration hostConfiguration, IServiceProvider serviceProvider)
        {
            this.serviceProvider = serviceProvider;
            editorUI             = new ConfigurationEditorUI();
            elementHost          = new ElementHost {
                Child = editorUI, Dock = DockStyle.Fill
            };

            editorControl = new UserControl()
            {
                Dock = DockStyle.Fill
            };
            editorControl.Controls.Add(elementHost);

            container = new ConfigurationContainer(serviceProvider);
            container.RegisterInstance(new AssemblyLocator(hostConfiguration.PluginDirectory));
            container.RegisterInstance <IWindowsFormsEditorService>(this);
            container.RegisterInstance <IUIServiceWpf>(this);
            container.RegisterInstance <IUIService>(this);
            container.RegisterInstance <IAssemblyDiscoveryService>(this);

            container.DiscoverSubstituteTypesFromAssemblies();

            elementHost.Resize += ElementHostResize;

            applicationModel     = container.Resolve <IApplicationModel>();
            editorUI.DataContext = applicationModel;

            validationModel = applicationModel.ValidationModel;

            applicationModel.SelectedElementChanged += SelectedElementChanged;

            validationErrorsChanged = validationModel.ValidationResults as INotifyCollectionChanged;
            if (validationErrorsChanged != null)
            {
                validationErrorsChanged.CollectionChanged += ValidationErrorsCollectionChanged;
            }
        }
コード例 #3
0
        public void CanRegisterAndGetInstance()
        {
            const string friendlyInstance = "hej med dig min ven";

            _container.RegisterInstance(friendlyInstance);

            var instance = _container.CreateContext().Get <string>();

            Assert.That(instance, Is.EqualTo(friendlyInstance));
        }