/// <summary> /// Gets or create the global selection service. /// </summary> /// <param name="serviceContainer">The service container in which an instance of the selection service will be added (or retrieved).</param> /// <returns>An instance of a class implemenaing <see cref="Delta.CertXplorer.Common.Services.ISelectionService"/>.</returns> public static ISelectionService GetOrCreateSelectionService(SCD.IServiceContainer serviceContainer) { if (serviceContainer == null) throw new ArgumentNullException("serviceContainer"); var selectionService = serviceContainer.GetService<ISelectionService>(); if (selectionService == null) { selectionService = new GlobalSelectionService(); serviceContainer.AddService<ISelectionService>(selectionService); } return selectionService; }
/// <summary> /// Gets or create the global selection service. /// </summary> /// <param name="serviceContainer">The service container in which an instance of the selection service will be added (or retrieved).</param> /// <returns>An instance of a class implemenaing <see cref="Delta.CertXplorer.Common.Services.ISelectionService"/>.</returns> public static ISelectionService GetOrCreateSelectionService(SCD.IServiceContainer serviceContainer) { if (serviceContainer == null) { throw new ArgumentNullException("serviceContainer"); } var selectionService = serviceContainer.GetService <ISelectionService>(); if (selectionService == null) { selectionService = new GlobalSelectionService(); serviceContainer.AddService <ISelectionService>(selectionService); } return(selectionService); }
private void CreateAndBindToSelectionService() { var service = GlobalSelectionService.GetOrCreateSelectionService(Services); service.SelectionChanged += (s, e) => { if (service.CurrentSource == this) { return; } if (service.SelectedObject == null) { return; } if (service.SelectedObject == parentObject) { return; } if (service.SelectedObject is CertificateStore) { parentObject = service.SelectedObject; var systemStore = (CertificateStore)parentObject; var store = systemStore.GetX509Store(); // See http://msdn.microsoft.com/en-us/library/aa376559%28VS.85%29.aspx : CERT_STORE_PROV_PHYSICAL //var store = new X509Store(systemStore.Name + "\\.Default", systemStore.Location.ToStoreLocation()); store.Open(OpenFlags.ReadOnly); CurrentStoreName = store.Name; CurrentStoreLocation = store.Location; FillList( store.GetCertificates(), store.GetCertificateRevocationLists(), store.GetCertificateTrustLists()); store.Close(); } }; service.AddSource(this); }
private void BindToSelectionService() { var service = GlobalSelectionService.GetOrCreateSelectionService(Services); service.SelectionChanged += (s, e) => propertyGrid.SelectedObject = service.SelectedObject; }