Je suis sur le point de définir une interface dans mon application que les rédacteurs de plug-ins peuvent mettre en œuvre pour fournir des capacités «d'exportation» définies par l'utilisateur. Ça va ressembler à quelque chose comme ceci:Comment puis-je informer l'implémenteur de mon interface que le paramètre "path" représente un dossier?
public interface IFooExporter
{
void ExportFoo(Foo foo, string path);
}
Cependant, je dois laisser le plug-in écrivains savent (explicitement, non seulement dans la documentation) que « chemin » représente un dossier, pas un nom de fichier. C'est leur responsabilité de créer les fichiers dans le cadre du processus d'exportation.
Quelle est la meilleure façon de faire en sorte qu'un chemin d'accès soit un dossier et non un nom de fichier? Ma meilleure estimation est en ce moment à utiliser DirectoryInfo au lieu de chaîne:
public interface IFooExporter
{
void ExportFoo(Foo foo, DirectoryInfo folder);
}
Est-ce une bonne solution, ou y at-il des pièges que je ne suis pas au courant avec le passage des instances DirectoryInfo autour?
Vous pouvez soit les forcer à utiliser DirectoryInfo, ce qui n'est pas une mauvaise chose, ou lancer une ArgumentException si vous utilisez une chaîne et qu'ils passent un nom de fichier – TimothyP
Dans l'autre sens, Timothy. Je vais leur passer la chaîne (ceci est pour les auteurs de plug-ins). Je veux m'assurer qu'ils implémentent la méthode de telle manière qu'elle ne suppose pas que la chaîne représente un nom de fichier. –