Re[8]: есть
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.11.22 12:55
Оценка:
Здравствуйте, Quebecois, Вы писали:

Q>Оно не соберется без ссылки UserAssembly -> ParentAssembly:

Q>
error CS0012: The type 'ParentClass' is defined in an assembly that is not referenced.

Q>Вызов конструктора собирается, вызов метода — нет. Потому что на первого компилятору достаточно пройти список конструкторов класса, а для второго — все методы, включая унаследованные, чтобы выбрать правильный overload.
Q>Что интересно, преобразование к интерфейсу тоже не собирается, хотя теоретически если child-class его реализует, то parent смотреть не надо.
А вы как собираетесь определять, что именно было указано в референсах?
Просто в метаданных проекта ссылки на Parent нету — там только ссылка на Child. Ссылка на Parent подтягивается инфраструктурой MSBuild неявно.
В метаданных результирующей сборки ссылка на Parent может быть, а может и не быть — в зависимости от того, во что отрезолвился символ Foo.

В какой момент и как вы предлагаете разработчику определять, что при пересборке Parent можно не пересобирать User?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.