Я собираюсь определить интерфейс в моем приложении, который могут использовать плагины для обеспечения пользовательских «экспортных» возможностей. Это будет выглядеть примерно так:Как я могу сообщить разработчику моего интерфейса, что параметр «путь» представляет собой папку?
public interface IFooExporter
{
void ExportFoo(Foo foo, string path);
}
Однако, мне нужно, чтобы плагин писатели знает (в явном виде, а не только в документации), что «путь» представляет собой папку, а не имя файла. Их ответственность заключается в создании файлов как части процесса экспорта.
Каков наилучший способ обеспечить, чтобы путь был папкой, а не именем файла? Моя догадка прямо сейчас использовать DirectoryInfo вместо строки:
public interface IFooExporter
{
void ExportFoo(Foo foo, DirectoryInfo folder);
}
Это хорошее решение, или есть подводные камни, я не в курсе с передачей экземпляров DirectoryInfo вокруг?
Вы можете заставить их использовать DirectoryInfo, что не так, или выбросить ArgumentException, если вы используете строку, и они передают имя файла. – TimothyP 2008-11-27 09:21:28
Другой способ, Тимоти. Я передам им строку (это для авторов плагинов). Я хочу убедиться, что они реализуют метод таким образом, что он не предполагает, что строка представляет имя файла. – 2008-11-27 10:50:18