Мне нужно использовать определенную веб-службу SOAP в моем приложении C #.
Но я использую новую структуру проекта (<Project Sdk="Microsoft.NET.Sdk">...</Project>
) в Visual Studio 2019 (версия 16.3.6). Таким образом, вместо добавления «Справочника услуг», теперь я могу добавить «Подключенную службу» и выбрать «Поставщик ссылок на веб-службы Microsoft WCF». (Это прекрасно работает, когда я ввожу URI для ресурса WSDL в текстовое поле URI и нажимаю кнопку «Перейти».)
Однако после создания леса сгенерированный код имел два заметных различия по сравнению с той же службойссылка в более старом проекте C #:
- сгенерированные классы не реализовали интерфейс
INotifyPropertyChanged
, а - сгенерированные классы не были помечены атрибутом
Serializable
.
Мне удалось позволить инструментам скаффолдинга реализовать интерфейс INotifyPropertyChanged
в сгенерированных классах, добавив свойство "enableDataBinding": true
в раздел ExtendedData
в ConnectedService.json
и обновив службу. Я попытался сделать то же самое для атрибута Serializable
(добавив свойство "serializable": true
в соответствии с параметрами командной строки SvcUtil.exe
), но безуспешно. Похоже, это не оказало никакого влияния.
Есть ли какой-то способ, позволяющий функциональности скаффолдинга Visual Studio также отмечать сгенерированные классы как Serializable
при добавлении / обновлении ссылки на службу WCF в моем приложении .NET?