J'ai un tas de DataSet fortement typé qui ont chacun deux tables. Une table est unique pour chaque DataSet, mais la seconde, "MetaData", a le même schéma pour chaque DataSet.Est-il possible d'ajouter une interface à un DataSet fortement typé dans .NET?
Lors de l'exécution, je détermine le DataSet que je souhaite utiliser et remplit la table de données de manière appropriée à partir d'un DB. Je veux ensuite remplir le tableau MetaData. Cela se ferait de la même manière pour chaque DataSet, donc je voudrais utiliser le même code. Une façon évidente de le faire serait de faire en sorte que chacun des DataSets implémente une interface qui ferait le travail.
Le problème vient quand je veux déclarer cette interface (IMyInterface) pour ces DataSets.
Chaque DataSet fortement typé est livré dans une multitude de fichiers. Le premier, et critique, fichier est le fichier MyDataSet.Designer.cs ... c'est un fichier qui est généré automatiquement. Il y a une ligne près du début qui lit:
public partial class MyDataSet : global::System.Data.DataSet
je pourrais ajouter mon interface après cela, mais je dois toutes les raisons de croire qu'il pourrait/serait effacé lorsque ce fichier est régénéré.
Si je dis à VS que je veux éditer le code pour le DataSet, il me crée un nouveau fichier appelé MyDataSet.cs. Mais la déclaration semble là comme ceci:
partial class MyDataSet
Si j'essayé d'ajouter une interface à ce comme ceci:
partial class MyDataSet : IMyInterface
il ressemblerait je tentais d'ajouter une sous-classe.
Quelle est la bonne façon de gérer cela? Changer le fichier du concepteur, et assurez-vous que VS ne le régénère jamais? Ajouter à la fois la superclasse et la déclaration de l'interface à l'autre fichier? Quelque chose d'autre entièrement?