| File: System\Windows\Forms\Design\DesignerExtenders.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.ComponentModel.Design; namespace System.Windows.Forms.Design; /// <summary> /// This class provides the Modifiers property to components. It is shared between /// the document designer and the component document designer. /// </summary> internal partial class DesignerExtenders { private IExtenderProvider[]? _providers; private IExtenderProviderService? _extenderService; /// <summary> /// This is called by a root designer to add the correct extender providers. /// </summary> public DesignerExtenders(IExtenderProviderService ex) { _extenderService = ex; _providers ??= [ new NameExtenderProvider(), new NameInheritedExtenderProvider() ]; for (int i = 0; i < _providers.Length; i++) { ex.AddExtenderProvider(_providers[i]); } } /// <summary> /// This is called at the appropriate time to remove any extra extender /// providers previously added to the designer host. /// </summary> public void Dispose() { if (_extenderService is not null && _providers is not null) { for (int i = 0; i < _providers.Length; i++) { _extenderService.RemoveExtenderProvider(_providers[i]); } _providers = null; _extenderService = null; } } }