如何将接口与不同解决方案中的类关联起来

我有一个名为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

下一篇: Stub method of instance