Почему я могу получить экземпляр класса, на который нет ссылок в этой сборке? - PullRequest
0 голосов
/ 30 сентября 2019

Фон : у нас есть три сборки:

  • печать (генерирует отчеты в формате pdf) -> ссылка на businessObjects.interfaces

  • businessObjects (содержит все наши бизнес-объекты) -> Ссылка на businessObjects.interfaces

  • businessObjects.interfaces (Здесь мы объявляем свойства для печати, только необходимые свойствавключены) -> Нет ссылок

Объект реализован следующим образом:

открытый интерфейс IDeliveryNote // Сборка: businessObjects.interfaces

открытая частичнаякласс DeliveryNote: IDeliveryNote // Assembly: businessObjects

В DeliveryNote также имеется класс 'Order', в котором содержится логическое значение IsNeutralDelivery *

Проблема: Некоторый отчет (DeliveryNoterReport) глючил, и нам нужно было включить существующее свойство (IsNeutralDelivery) из объекта businessObjects.DeliveryNote.Order -. На самом деле, мы не можем развернуть приложение (не спрашивайте :)Студия магии, поэтому я попытался получить свойство с отражением следующим образом:

bool neutralDeliveryAddressIsNeutralDelivery = (bool)dn.GetType().GetProperty("Order").GetValue(dn).GetType().GetProperty("IsNeutralDelivery").GetValue(dn.GetType().GetProperty("Order").GetValue(dn));

И да, я получил значение, и с этим я мог бы исправить ошибку (только заменить printing.dll)

Вопрос: Почему я могу получить экземпляр объекта DeliveryNote, если у меня нет ссылок на сборку, к которой он принадлежит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...