Как сказал Даниэль Пратт , в конце концов, вы проводите XML-передачу (не всегда, но в большинстве случаев) по сети.
Если вы использовали прокси-генератор для генерации определения типа Сервера, то вы не сможете выполнять вызовы методов Сервера, поскольку в определении прокси используются только свойства (по крайней мере, семантически). , Кроме того, вы не можете приводить к производным типам, потому что ваш экземпляр действительно является определением отдельного типа, а не фактической базой.
Если тип Сервера действительно того же типа (и под тем же, я имею в виду ссылку на одну и ту же сборку, а не только по имени и схеме), тогда вы можете сделать то, что Стив сказал , и использовать атрибут KnownType в определении сервера, добавив один атрибут для каждого производного класса.
Однако, как он сказал, это запутывает ваш код, поэтому будьте осторожны при этом.
Я думал, что здесь будет работать использование инверсии управления, но вы сталкиваетесь с той же ситуацией с общими ссылками на конкретных поставщиков.