¿Cómo puedo informar al implementador de mi interfaz que el parámetro "ruta" representa una carpeta?

StackOverflow https://stackoverflow.com/questions/322379

  •  11-07-2019
  •  | 
  •  

Pregunta

Estoy a punto de definir una interfaz en mi aplicación que los escritores de complementos pueden implementar para proporcionar "exportación" definida por el usuario capacidades. Se verá más o menos así:

public interface IFooExporter
{
    void ExportFoo(Foo foo, string path);
}

Sin embargo, necesito informar a los escritores de plug-in (explícitamente, no solo en la documentación) que '' ruta '' representa una carpeta, no un nombre de archivo. Es su responsabilidad crear los archivos como parte del proceso de exportación.

¿Cuál es la mejor manera de exigir que una ruta sea una carpeta y no un nombre de archivo? Mi mejor conjetura en este momento es usar DirectoryInfo en lugar de string:

public interface IFooExporter
{
    void ExportFoo(Foo foo, DirectoryInfo folder);
}

¿Es una buena solución, o existen dificultades que desconozco al pasar instancias de DirectoryInfo?

¿Fue útil?

Solución

Debido a que no está implementando la solución, entonces estoy de acuerdo con su solución de usar DirectoryInfo como parámetro. Si especifica una cadena, entonces no hay forma de detener la cadena que se pasa.

Otros consejos

Utilice comentarios XML, se mostrarán en la ventana emergente Intellisense de Visual Studio.

/// <summary>
/// Type in the text you want to appear
/// </summary>

Nombra tu variable más explícitamente. ¿Es simplemente un camino? Estás diciendo que no, pero aún lo dejas con un nombre genérico. Nómbrelo folderPath y habrá menos confusión y menos necesidad de comunicarlo explícitamente a los implementadores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top