J'ai des classes configuration semblable à ceci:En utilisant de nombreuses classes dans l'interface graphique qui héritent d'une base
<DataContract()> _
Public MustInherit Class SystemTaskProcessBase
Public MustOverride ReadOnly Property Name() As String
Public MustOverride ReadOnly Property Description() As String
Public MustOverride Property Result() As SystemTaskResult
<DataMember()> _
Private _TaskID As Integer = 0
Public Property TaskID() As Integer
Get
Return _TaskID
End Get
Set(ByVal value As Integer)
_TaskID = value
End Set
End Property
End Class
<DataContract()> _
Public Class RebootSystemTaskProcess
Inherits SystemTaskProcessBase
Private _Name As String = "Reboot System"
Public Overrides ReadOnly Property Name() As String
Get
Return _Name
End Get
End Property
Private _Description As String = "Task for the client to reboot itself internally."
Public Overrides ReadOnly Property Description() As String
Get
Return _Description
End Get
End Property
<DataMember()> _
Public _Result As SystemTaskResult = SystemTaskResult.NotProcessed
Public Overrides Property Result() As SystemTaskResult
Get
Return _Result
End Get
Set(ByVal value As SystemTaskResult)
_Result = value
End Set
End Property
End Class
<DataContract()> _
Public Class DeleteFileSystemTaskProcess
Inherits SystemTaskProcessBase
Private _Name As String = "Delete File"
Public Overrides ReadOnly Property Name() As String
Get
Return _Name
End Get
End Property
Private _Description As String = "Task for the client to delete a local file."
Public Overrides ReadOnly Property Description() As String
Get
Return _Description
End Get
End Property
<DataMember()> _
Public _Result As SystemTaskResult = SystemTaskResult.NotProcessed
Public Overrides Property Result() As SystemTaskResult
Get
Return _Result
End Get
Set(ByVal value As SystemTaskResult)
_Result = value
End Set
End Property
<DataMember()> _
Private _File As FileInfo
Public Property File() As FileInfo
Get
Return _File
End Get
Set(ByVal value As FileInfo)
_File = value
End Set
End Property
End Class
-je utiliser ces classes sur le système client, mais il faut aussi être en mesure de créer ces « tâches "à travers une interface de gestion. Chaque classe (tâche) qui hérite de la base peut avoir ses propres propriétés propres à chaque classe, mais en même temps, partager les mêmes propriétés de classe de base communes. Par exemple, ce qui précède montre une tâche de redémarrage et une tâche de suppression de fichier, la tâche de suppression de fichier doit connaître le fichier à supprimer, de même qu'une propriété pour cela. Mais la tâche de redémarrage n'a pas besoin de cette propriété. Ainsi, lorsque l'application de gestion crée ces tâches, elle ne doit pas fournir de zone de texte pour la propriété de fichier pour la tâche de redémarrage. Il peut y avoir plus de tâches créées à une date ultérieure avec des propriétés complètement différentes. Comment donner à l'application de gestion WinForms un moyen d'énumérer chaque classe dans un ListView par exemple, et de permettre à l'utilisateur de créer ces tâches et de remplir les propriétés dynamiques que chaque classe aurait?
La fonctionnalité souhaitée consiste à créer un formulaire de tâche qui crée des contrôles dynamiques disponibles pour les propriétés selon les besoins, en fonction des propriétés publiques de chaque classe, mais en même temps, les propriétés de classe de base sont également disponibles.
Toutes les idées sont appréciées.
Merci, Scott
Merci pour votre réponse. J'essaie vraiment de garder cela en dehors d'une base de données en ce moment. Après avoir posté ma question, j'ai commencé à lire les attributs personnalisés pour les classes et les champs et ensuite être capable de lire ces valeurs d'indicateur pour déterminer si ce champ devrait avoir un contrôle créé pour lui ou non. Je pense que c'est essentiellement la même chose que ce que vous suggérez, en éliminant simplement le besoin de base de données. – ScottN
@ScottN. Voir Modifier pour utiliser la réflexion pour obtenir les propriétés nécessaires. – SKG