WCF - Объект как известный тип -> совместимый? - PullRequest
3 голосов
/ 12 мая 2011

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

Наличие следующего контракта данных:

    [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, как сериализовать / десериализовать объект из /в известные типы определены.

1 Ответ

1 голос
/ 12 мая 2011

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

...