С тех пор, как мы представили базы данных SQL Azure (но некоторые из наших клиентов все еще находятся локально), мы работаем над веб-приложением (но большинство наших клиентов все еще используют устаревшее приложение) и мы имеем дело с некоторыми клиентами, которые хотят использовать базу данных SQL Azure, но отказываются открыть порт для OLEDB для подключения к ним. Итак, мы написали REST API, который возвращает наборы данных, сериализованные в XML. (после различных приключений в JSON, которые привели к тупику).
Сериализация и десериализация наборов данных в XML оказалась очень простой и работает отлично почти всегда при включении информации о схеме. Пока мы не встретим один набор данных, который включает столбец, определенный как UNIQUEIDENTIFIER, то есть Guid.
Я думаю, что основная причина проблемы заключается в том, что REST API был написан для .NET Core, в то время как устаревшее приложение было написано для .NET Framework 4.8.
Хотя с «простыми» типами данных все в порядке, информация о схеме для Guid включается следующим образом:
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
msdata:DataType="System.Guid, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
Код: Выделить всё
msdata:DataType="System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Код: Выделить всё
System.Private.CoreLib, Version=8.0.0.0
Код: Выделить всё
System.Private.CoreLib, Version=9.0.0.0
Код: Выделить всё
System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Мой вопрос: существует ли «одобренный» или «правильный» способ сделать это или нет лучшего способа, чем проверка разработчиком этого вывода, если он переключится на другую версию .NET Core и напишет свой собственный string.replace?
Подробнее здесь: https://stackoverflow.com/questions/798 ... rver-uniqu
Мобильная версия