循环依赖的解决方案

时间:2014-10-17 13:24:58

标签: c# .net visual-studio-2012 interface circular-dependency

我在两个项目中有两个类,每个类需要调用其他类方法。 但是无法相互添加引用,因为它正在创建循环依赖。

我知道我必须使用界面来解决问题,但我无法得到答案。 请告诉我如何实施&解决这个问题。

项目测试2

 namespace Test2
    {
       public  class ClassTest2 
        {
            public string GetClassTest2()
            {
                return "classTest2";
            }
        }
    }

项目测试1

namespace Test1
{
   public class ClassTest1
   {
        public string GetClassTest1()
        {
            return "classTest1";
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您需要第三个项目来定义界面:

public interface IClassNameAware
{
    string GetClassName();
}

从两个现有项目中,引用此新程序集并使类实现接口:

public class ClassTest1 : IClassNameAware
{
    public string GetClassName()
    {
        return "classTest1";
    }

现在两个类仍然无法直接访问彼此,但它们接受IClassNameAware个变量,即:

    public bool ClassNamesEqual(IClassNameAware otherClass)
    {
        return GetClassName().Equals(otherClass.GetClassName());
    }
}