Как я могу сообщить разработчику моего интерфейса, что параметр «path» представляет папку?
-
11-07-2019 - |
Вопрос
Я собираюсь определить интерфейс в своем приложении, который разработчики плагинов могут реализовать для обеспечения пользовательского " экспорта " возможностей. Это будет выглядеть примерно так:
public interface IFooExporter
{
void ExportFoo(Foo foo, string path);
}
Однако мне нужно сообщить авторам плагинов (явно, а не только в документации), что " путь " представляет папку, а не имя файла. Они несут ответственность за создание файлов в процессе экспорта.
Как лучше всего обеспечить, чтобы путь был папкой, а не именем файла? Сейчас я предпочитаю использовать DirectoryInfo вместо строки:
public interface IFooExporter
{
void ExportFoo(Foo foo, DirectoryInfo folder);
}
Это хорошее решение или есть подводные камни, о которых я не знаю, когда передаю экземпляры DirectoryInfo?
Решение
Поскольку вы не внедряете решение, я согласен с вами с решением использовать DirectoryInfo в качестве параметра. Если вы укажете строку, то нет способа остановить передачу любой строки.
Другие советы
Используйте комментарии XML, они будут отображаться во всплывающем окне Intellisense в Visual Studio.
/// <summary>
/// Type in the text you want to appear
/// </summary>
Назовите вашу переменную более явно. Это просто путь? Вы говорите, нет, это не так, но вы все еще оставляете это с общим именем. Назовите его folderPath, и будет меньше путаницы и меньше необходимости явно сообщать об этом реализаторам.