【发布时间】:2012-03-11 19:04:52
【问题描述】:
我有在运行时加载的自定义程序集。
此时我有代码可以加载 dll 并可以创建新的对象实例和执行方法。
如何验证该类是否实现了我在接口中定义的所有功能。
(我正在尝试创建具有不同操作的插件系统,可以在运行时打开,以提供不同的行为)。
我的代码应该是这样的主程序:
public Interface IArticleManager{
void SetMenuId(int MenuId);
void SetMenu(string name);
void SetContent(string content);
bool Save();
}
我的类库(断开连接可以从解决方案中看到)
public class XmlArticle{
public void SetMenuId(int MenuId){
//some implementation
}
public void SetMenu(string name){
//some implementation
}
public void SetContent(string content){
//some implementation
}
public bool Save(){
}
}
public class SqlArticle{
public void SetMenuId(int MenuId){
//some implementation
}
public void SetMenu(string name){
//some implementation
}
public void SetContent(string content){
//some implementation
}
public bool Save(){
}
}
【问题讨论】:
-
我就是想不通。为什么定义一个接口,却不从它继承具体的实现?
-
你的类需要实现你的接口。这就是接口的目的,所以你不需要检查类是否具有所有必需的方法......
-
@DaniilNovikov:因为我的界面存在于主程序中,并且该类不一定必须有一个,但我确实想将它与我存在于主程序中的界面相匹配,以确保兼容性.
-
@Lloyd:不。他的类没有实现任何接口...
-
在单独的程序集中移动您的界面。将此程序集引用到主程序和需要它的地方。在具体实现中继承这个接口。
标签: c# reflection