Мы разрабатываем модель синхронизации концентратор / спица с использованием Microsoft Sync Framework и WCF, и, поскольку мы разрабатываем и клиент, и сервер, мы хотели бы поместить интерфейс контракта службы WCF в общую сборку, чтобы мы могли определите его только один раз и поделитесь им между клиентом и сервером. По большей части это работает, но метод GetSchema Sync Framework передает объект Collection с именами таблиц, который сериализуется и читается на клиенте как строка []. Однако, поскольку клиентский прокси-сервер был написан для использования интерфейса сервера, он ожидает получить объект Collection, и я получаю несоответствие типов.
Я бы просто изменил контракт так, чтобы он явно передавал только строку [], и приводил его вручную при вызове методов поставщика синхронизации, но это приводит к ошибке "найдено неоднозначное совпадение".
Как я могу использовать один и тот же интерфейс на клиенте и на сервере и правильно обрабатывать сериализацию Collection -> string []?