Overview

Namespace: TheTechIdea.Beep.Winform.Controls.Design.Server.Docking.Infrastructure
Inheritance: Microsoft.DotNet.DesignTools.TypeRouting.TypeRoutingDefinitionProvider | Visibility: internal sealed
Decorators: [Shared], [ExportTypeRoutingDefinitionProvider] (MEF attributes)

BeepDockingTypeRoutingProvider registers three docking designer types with the Microsoft.DotNet.DesignTools host framework so Visual Studio knows how to resolve these designers at design time. This follows the same MEF-export pattern used by the existing BeepMdiTypeRoutingProvider for MDI routing.

Type Route Definitions

The GetDefinitions() override returns an IEnumerable<TypeRoutingDefinition> with three entries:

Designer TypePurpose
BeepDockingManagerDesignerNon-visual component designer for BeepDockingManager (tray component)
BeepDockspaceDesignerParentControlDesigner for BeepDockspace (tab drag-drop, header routing)
DockPanelDesignerParentControlDesigner for DockPanel (move snapping, auto-key)

MEF Export Pattern

[Shared]
[ExportTypeRoutingDefinitionProvider]
internal sealed class BeepDockingTypeRoutingProvider
    : TypeRoutingDefinitionProvider
{
    public override IEnumerable<TypeRoutingDefinition> GetDefinitions()
    {
        yield return TypeRoutingDefinition.Create(
            typeof(BeepDockingManagerDesigner));
        yield return TypeRoutingDefinition.Create(
            typeof(BeepDockspaceDesigner));
        yield return TypeRoutingDefinition.Create(
            typeof(DockPanelDesigner));
    }
}

Examples

This provider is automatically discovered by MEF when the Design.Server assembly is loaded in the Visual Studio design host process. When a developer drops a BeepDockingManager, BeepDockspace, or DockPanel on the form, the corresponding designer is resolved through this routing provider and applied to the component.