如何将接口与不同解决方案中的类关联起来
我有一个名为iChannels的接口,它只有一个方法。
using CHNL;
namespace iInterface
{
public interface iChannels
{
string getData(string docXML);
}
}
然后在另一个项目中,我有一个名为Channel1的类,这个类定义如下:
using iInterface;
namespace CHNL
{
public class Channel1:iChannels
{
string getData(string str)
{
return str;
}
}
}
我不得不做一个交叉引用,因为接口和类相互认识。 之后,我有一个webform,我只想using iInterface;
,但如果我只这样做,我无法创建Channel1对象。
我的意图是创建Channel1对象,只需使用iInterface
库。
我想我现在可以看到你的问题。
当你说'我的意图是创建Channel1对象,只是使用iInterface Library'...这在C#中是不可能的,或者至少不可能直接创建Channel1对象,而不在Channel I声明在与iChannels相同的库中。
你可以通过依赖注入来实现这一点。 一般来说,你的webform将依赖于iChannels,并且一个依赖容器将会提供一个iChannel实现,在你的情况下是Channel1。
看看这篇文章;
为什么要使用依赖注入?
你不能从iInterface继承,因为iInterface是名称空间的名称而不是接口,所以我认为你需要下面的代码;
using iInterface;
namespace CHNL
{
public class Channel1 : iChannels
{
string getData(string str)
{
return str;
}
}
}
您的webform不需要了解Channel1类,但是您的webform所在的项目需要引用Channel1所在的项目。
你可以使用类似的方式创建一个iChannels的实例;
iChannels myIChannels = new Channel1();
然后,您的webform可以引用iChannel而不会意识到iChannel的实际具体实现,在这种情况下是Channel1。
尽管使用工厂或依赖注入来创建iChannel的实际实现并避免使用'new Channel1();' 共。
链接地址: http://www.djcxy.com/p/82259.html上一篇: How to associate a Interface, with classes from different solutions