2010-02-25 19 views
0

Je travaille sur un système de plugin. Certains plugins nécessitent une entrée de l'utilisateur. Je voudrais qu'ils soient en mesure de signaler à l'application principale quelle entrée ils ont besoin et que l'application principale décide comment l'obtenir. Il semble qu'il pourrait y avoir une sorte de bibliothèque conçue pour spécifier des options comme celle-ci. Donc, comme le plugin pourrait renvoyer une sorte d'objet Options spécifiant les noms et les types d'options que l'application principale pourrait utiliser pour déterminer le type de contrôles à afficher pour obtenir les options nécessaires.Existe-t-il quelque chose comme une bibliothèque "Options" pour .NET?

Je ne sais pas si quelque chose comme ça existe, mais il semble assez probable étant donné qu'il semble y avoir beaucoup d'applications pour utiliser des options comme celle-ci. Je pense à des choses comme Firefox à propos de: config qui montre juste une liste massive d'options et sait comment gérer chacun d'eux. Fondamentalement, je veux être en mesure de faire une environ: page de configuration pour mon application principale (ce n'est pas une application web ou un navigateur, c'est juste un exemple) qui voit quelles options les plugins veulent et génère automatiquement une interface simple (comme sur: config) pour obtenir ces options.

+0

Regardez dans la définition d'une API = /? Je pense que c'est ce que vous demandez – Warty

Répondre

2

S'il s'agit d'une application WinForms, jetez un coup d'œil au contrôle PropertyGrid. Vous créez un objet de classe qui contient des propriétés pour toutes les options que vous souhaitez que l'utilisateur configure. Ensuite, vous définissez la propriété "SelectedObject" de votre PropertyGrid avec cet objet. Le contrôle crée alors une fenêtre qui permet à votre utilisateur de modifier les valeurs de votre objet d'options lors de l'exécution.

+0

Awesome. Je suis toujours prêt à entendre plus de réponses, mais je ne savais pas à propos de PropertyGrid et cela fonctionnerait certainement. –

0

Votre demande pour la fonctionnalité est vraiment exceptionnelle. Habituellement, le framework (ou une bibliothèque spéciale) ne connaît pas la conception et les exigences de l'application, et ne sait pas non plus à quel moment il convient de demander quelque chose à l'utilisateur. De plus, les plugins sont généralement chargés à la demande, et non au démarrage de l'application, de sorte que toute logique UI déclenchée par la structure/bibliothèque peut être très inappropriée. Donc, en gros, il semble que vous ayez besoin d'écrire vous-même la bibliothèque.

+1

Je ne pense pas que ce soit inhabituel du tout. Beaucoup, beaucoup, beaucoup d'applications avec des frameworks de plugin fournissent également une interface utilisateur standard que les plugins utilisent pour se configurer eux-mêmes. – Nick