public ApplicationPoolAdvancedSettingsDialog(IServiceProvider serviceProvider, ApplicationPool pool)
            : base(serviceProvider)
        {
            InitializeComponent();
            _pool = pool;
            var settings = new ApplicationPoolAdvancedSettings(pool);

            propertyGrid1.SelectedObject = settings;
        }
        public ApplicationPoolAdvancedSettingsDialog(IServiceProvider serviceProvider, ApplicationPool pool)
            : base(serviceProvider)
        {
            InitializeComponent();
            var settings = new ApplicationPoolAdvancedSettings(pool);

            propertyGrid1.SelectedObject = settings;

            var container = new CompositeDisposable();

            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
            {
                ((ApplicationPoolAdvancedSettings)propertyGrid1.SelectedObject).Apply(pool);
                DialogResult = DialogResult.OK;
            }));
        }