Я могу сериализировать Таблицу данных или Набор данных для передачи по веб-сервису в C#?

Я не думаю, что сейчас что-либо существует (предоставлено Microsoft или третьей стороной).

Вы можете попробовать создать реализацию IFileProvider, используя Google Cloud Storage SDK , доступный в NuGet с пакетом Google.Cloud.Storage.V1 .

Кроме того, я предлагаю вам взглянуть на пользовательскую реализацию IFileProvider, которая использует хранилище BLOB-объектов Azure для вдохновения. Вы можете прочитать сообщение в блоге здесь и взглянуть на код на GitHub в репозитории filipw/Strathweb.AspNetCore.AzureBlobFileProvider .

11
задан Loganj99 18 February 2009 в 14:16
поделиться

6 ответов

Можно отправить данные как строку xml от набора данных DataSet.GetXml()

И, чем пользователь может десериализовать его с DataSet.ReadXml()

И получите таблицу данных от набора данных DataSet.Tables

Удачи

9
ответ дан 3 December 2019 в 02:21
поделиться

Если Вы выставляете его как a DataSet/DataTable, это сделает свою собственную сериализацию так или иначе (через IXmlSerializable, IIRC). Отметьте это DataSet/DataTable не делайте для хороших типов данных на веб-сервисах, если Вы хотите, чтобы сервис был портативным к другим patforms (т.е. клиент Java, и т.д.). Но можно просто выставить его как таковой, если Вы хотите...;.NET будет иметь дело с переводом.

7
ответ дан 3 December 2019 в 02:21
поделиться

См. это сообщение Richard Blewett по причинам, почему Вы, вероятно, не хотели бы делать это.

Править: Суммировать вышеупомянутое:

  • Используя DataSet не совместимо. Это использует аннотации, которые только имеют смысл, когда каждый конец ссылки использует стек Microsoft.
  • DataSet довольно неэффективный класс для отправки данных по проводу - это содержит данные отслеживания изменений и метаданные также.
  • Это представляет плотное соединение - изменения, внесенные на сервисной стороне, которая даже не могла бы быть необходима клиенту, должны быть отражены на стороне клиента также.
7
ответ дан 3 December 2019 в 02:21
поделиться

Можно передать DataTable по веб-сервису. Таким образом, это - вероятно, Ваш наилучший вариант, becuase, именно это попросил клиент.

1
ответ дан 3 December 2019 в 02:21
поделиться

Конечно. И DataTable и DataSet являются сериализуемыми, и у них также есть ReadXml () и WriteXml () функции, которые можно использовать, также.

5
ответ дан 3 December 2019 в 02:21
поделиться

Самое простое и большая часть совместимого пути должны сериализировать набор данных к XML с GetXml () метод, затем передать это как строку от веб-сервиса. Клиент может затем десериализовать его с ReadXml () метод.

Мы использовали сервис, который сделал это этот путь, и это работало отлично.

Альтернатива должна выставить класс DataSet в сервисе и возвратить объект набора данных. Но это усложнит вещи, особенно если каким-либо клиентом должен быть non-.NET.

1
ответ дан 3 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: