Риск перекрестной ссылки - PullRequest
0 голосов
/ 20 декабря 2018

Я создал класс, который будет называться «A», и этот ссылочный класс «B». В то же время я создал класс, который будет называться «B», и этот ссылочный класс «A»

Я сделалдва класса, как показано ниже

class A
{
   private readonly B _b;
   A(B b)
   {
      _b = b;
   }
}

class B
{
   private readonly A _a;
   B(A a)
   {
      _a = a;
   }
}

Но NInjection не позволил мне создать подобный шаблон.

Итак, я хочу знать, почему нельзя делать перекрестные ссылки.

Спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать внедрение свойства, чтобы обойти циклическую зависимость:

class A
{
   public B _b {get; set;}
   public void OtherMethod() {}
}

class B
{
   B(A a)
   {
      a._b = this;
   }
}
...