Позднее преобразование наших служб fabri c из V1 в V2 и проблемы с известными типами. Использование 3.4.677 удаленного взаимодействия.
Получение следующей ошибки:
```Type 'System.Collections.Generic.List`1[System.String]' cannot be added to list of known types since another type 'System.String[]' with the same data contract name 'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfstring' is already present.```
Ни один из объектов (т. Е. Контрактов), возвращаемых методами обслуживания (т. Е. IService
), не использует ничего, кроме string[]
как коллекция строк. Проблема возникает в определениях метода IService
, в частности, для параметра (примечание: не возвращаемые типы). Изменение всех List<string>
на string[]
в параметрах метода решает проблему. Однако я не хотел бы изменять интерфейс IService
.
В сообщении об ошибке указывается, что дополнительный «известный тип» ArrayOfstring
не может быть добавлен. Добавление атрибута ServiceKnownType (typeof (List)) к методам с List<string>
не имеет никакого эффекта.
Существуют ли какие-либо другие атрибуты, которые можно применять для создания производимого определения xml разрешить дополнительные ArrayOfstring
типы?