У меня большой проект удаленного взаимодействия .NET с использованием фреймворка 2.0. API сервера предоставляется через интерфейсы, а общие типы содержатся в сборке, используемой совместно с клиентским приложением.
У меня есть несколько методов, которые принимают массивы базового класса, у которого есть много разных классов, наследующих его.
Например, у меня есть базовый класс «Транспортное средство», у которого есть два класса, которые наследуются от него: «Автомобиль» и «Грузовик».
У меня есть метод IFoo.Save (Список транспортных средств)
Позже я добавляю новый класс, который наследуется от «Vehicle» с именем «Motorcycle», и только общий сервер или клиент имеют новую общую сборку, но не оба. Один из них не сможет разрешить новый тип.
Какой, на ваш взгляд, самый гибкий способ справиться с этой ситуацией?
РЕДАКТИРОВАТЬ: Это клиентское приложение Windows Forms и сервер удаленного взаимодействия, размещенный в службе Windows.