Oui, vous pouvez le faire ... en utilisant l'héritage et la création de classes de base comme suit
1- d'abord créer une classe de base héritant de la classe WebPart avec la méthode CreateChildControls de remplacement par exemple
<XmlRoot("MyWebPartBase")> _
<ToolboxItemAttribute(True)> _
Public Class BaseWebPart
Inherits WebPart
Protected Overrides Sub CreateChildControls()
Dim control As Object = Page.LoadControl(ascxPath)
If control IsNot Nothing Then
control.WebPartControl = Me
Controls.Add(CType(control, Control))
End If
End Sub
'Add public properties here
End Class
2 - Implémentez vos propriétés dans cette classe de base et Héritez vos webparts de la classe de base mentionnée ci-dessus plutôt que de la classe webpart.
3- Créez une classe de base pour les contrôles utilisateur implémentant des propriétés publiques pour y accéder dans le contrôle utilisateur, par ex.
Public Class BaseUserControl
Inherits UserControl
Private _WebPartControl As BaseWebPart
Public Property WebPartControl As BaseWebPart
Get
Return _WebPartControl
End Get
Set(ByVal value As BaseWebPart)
_WebPartControl = value
End Set
End Property
Public ReadOnly Property WebPartID() As String
Get
Return WebPartControl.ID
End Get
End Property
End Class