Здравствуйте, Quebecois, Вы писали: Q>Работает.
Я неудачно выразился. Этот способ может работать. А может и не сработать, причём большим количеством разнообразных способов.
Например, может вылететь исключение с method not found. А может молча выбраться не тот метод, который ожидает пользователь.
Ограничения, при которых можно безопасно использовать из сборки A сборку B после внесения в метаданные B изменений без перекомпиляции A, перечислить довольно сложно.
И изменение сигнатуры конструктора в них явно не входит.
Именно отсюда правило большого пальца: всегда перекомпилируем проект при изменении в любой из зависимостей.
Вот в вашем примере совершенно не нужно привлекать какую-то ParentAssembly.
Достаточно просто иметь ChildAssembly с классом ChildClass, отнаследованным напрямую от object.
Теперь мы заменяем сигнатуру конструктора в ChildClass c ChildClass(int x) на ChildClass(string x).
Совершенно неважно, сгенерирован ли этот конструктор автоматически языком или вручную пользователем. Результат будет одинаковым — MethodNotFound.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.