我的应用程序支持插件。有一个项目,PluginUtils
,包含接口和代码。该项目包含在应用程序和每个插件中。插入接口文件的位置?
问题是一个界面提到了一个自定义项目,但是PluginUtils
会导致在所有插件类型中都需要自定义项目。
namespace PluginUtils
{
public interface IPluginSend
{
[Description("Send an email")]
void SendEmail(string subject, string body, List<string> attachments, List<string> toAddresses);
}
public interface IPluginSave
{
[Description("Save data")]
string SaveData(List<MyClass> data, string resultsPath);
}
}
我怎样才能防止插件,不必引用包含MyClass
的命名空间来实现IPluginSend
?
编辑
阿龙的回答很关键。我不得不改变一些依赖关系:PluginUtils
不再包含对MyClass
命名空间的引用,但MyClass
现在引用PluginUtils
。
您不能 - 'MyClass'是合同的一部分。为什么接口提到它,如果实现者不应该需要它? –