ASP. NET - веб-API - [DataMember] массив трех типов - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть веб-сервис REST, реализованный с использованием ASP. NET Web API. Мне нужно добавить звонок, чтобы присоединиться к документам. Таким образом, этот вызов передается массиву документов, они объединяются в переданном порядке, а затем возвращается один документ.

Проблема в том, что документы можно передать тремя различными способами.

  1. Фактический файл, передаваемый как закодированная в base64 копия битов.
  2. URL-адрес файла.
  3. Указатель, который идентифицирует файл, который мы сохранили.

Так что мне нужно что-то вроде:

[DataMember]
public Data | Url | Guid [] Files { get; set; }

Или поставить его как XML:

<files>
  <Data>01034f2d...</Data>
  <Url>http://data.files.com/mystuff/HiThere.pdf</Url>
  <Guid>38D2C12D-6D6D-4353-A8BD-A8B09DB177EF</Guid>
  <Url>http://data.files.com/mystuff/HelloThere.pdf</Url>
  <Guid>C6501830-18E6-4A76-BA13-96D5BE031D5A</Guid>
</files>

Проблема в том, что я могу заказать у него этого нет, потому что он не позволяет упорядочивать типы:

[DataMember]
public string [] Data { get; set; }
[DataMember]
public string [] Url { get; set; }
[DataMember]
public string [] Guid { get; set; }

Как я могу это сделать?

...