Вопрос

На самом деле на этот вопрос должен быть прямой ответ (о свойстве «Объект» ниже):

Имея следующий контракт данных:

    [KnownType(typeof(bool))]
    [KnownType(typeof(int))]
    [KnownType(typeof(string))]
    [KnownType(typeof(Customer))]
    [KnownType(typeof(Client))]
    public class Transaction
    {    
        // properties
        [DataMember(Name = "UID")]
        public int UID{}

        [DataMember(Name = "Type")]
        public Enums.TransactionType Type{}

        [DataMember(Name = "Data")]
        public Object Data{}
    }

и следующий контракт на обслуживание:

public interface IService
{
      [OperationContract(Name = "GetData")]
      List<Transaction> GetTransact();
}

Будет ли это совместимо?Говоря с Java, gSoap?Если нет, то как я могу сделать его совместимым?

Спасибо.

РЕДАКТИРОВАТЬ:Я просто хочу знать, знает ли WCF, как сериализовать/десериализовать объект из/в определенные известные типы.

Это было полезно?

Решение

Все должно быть в порядке, если клиент может правильно генерировать типы из WSDL.Например, в зависимости от клиента это может изменить C#. List<Transaction> в Transaction[] или что-то довольно эквивалентное.Вам также необходимо будет выбрать правильный тип переплета.Обычно BasicHttpBinding дает наилучшие результаты по совместимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top