0

我的这段代码在 Service1 和 Service 2 之间有一个循环引用,我正在使用 VS2015 Code Map 来查找循环引用,但它们似乎没有出现

我选择了布局>分析器>循环参考分析器,根据右边的图例,它应该在红色方框中突出显示...

    public interface IService1
        {
            void Dosometing1();
            void Donothing();
        }

        public class Service1 : IService1
        {
            private readonly IService2 _service2;

            public Service1(IService2 service2)
            {
                _service2 = service2;
            }

            public void Dosometing1(){}
            public void Donothing()
            {
             _service2.Dosometing2();   
            }
        }

        public interface IService2
        {
            void Dosometing2();
        }

        public class Service2 : IService2
        {
            readonly IService1 _service1;

            public Service2(IService1 service1)
            {
                _service1 = service1;
            }

            public void Dosometing2()
            {
                _service1.Donothing();

            }
        }

来自代码映射的 circ ref

4

1 回答 1

1

该图中的任何地方也没有循环引用。所有的链接都是从左到右流动的,没有一个是从右到左的。循环引用分析器在可见图中突出显示循环。

这是方法级别的简单循环引用的示例:

    class TestMe
    {
        public void A()
        {
            B();
        }

        public void B()
        {
            A();
        }
    }

和代码图:

在此处输入图像描述

如果您期待别的东西,请告诉我。如果您可以描述您要捕获的架构违规类型,这也会有所帮助:)

于 2015-11-16T17:43:01.517 回答