BeepDockingTypeRoutingProvider
MEF-exported TypeRoutingDefinitionProvider -- registers BeepDockingManagerDesigner, BeepDockspaceDesigner, and DockPanelDesigner with the .NET DesignTools host framework
Table of Contents
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 Type | Purpose |
|---|---|
| BeepDockingManagerDesigner | Non-visual component designer for BeepDockingManager (tray component) |
| BeepDockspaceDesigner | ParentControlDesigner for BeepDockspace (tab drag-drop, header routing) |
| DockPanelDesigner | ParentControlDesigner 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.