【发布时间】:2008-11-26 22:30:29
【问题描述】:
我即将在我的应用程序中定义一个接口,插件编写者可以实现该接口以提供用户定义的“导出”功能。它看起来像这样:
public interface IFooExporter
{
void ExportFoo(Foo foo, string path);
}
但是,我需要让插件编写者知道(明确地,不仅仅是在文档中)“路径”代表一个文件夹,而不是一个文件名。在导出过程中创建文件是他们的责任。
强制路径是文件夹而不是文件名的最佳方法是什么?我现在最好的猜测是使用 DirectoryInfo 而不是字符串:
public interface IFooExporter
{
void ExportFoo(Foo foo, DirectoryInfo folder);
}
这是一个好的解决方案,还是在传递 DirectoryInfo 实例时存在我不知道的陷阱?
【问题讨论】:
-
您可以强制他们使用 DirectoryInfo,这不是一件坏事,或者如果您使用字符串并且他们传递了文件名,则抛出 ArgumentException
-
反过来,蒂莫西。我将把字符串传递给他们(这是给插件作者的)。我想确保他们以不假定字符串代表文件名的方式实现该方法。
标签: .net api extensibility