WCF – объект как известный тип → совместимый?
-
12-11-2019 - |
Вопрос
На самом деле на этот вопрос должен быть прямой ответ (о свойстве «Объект» ниже):
Имея следующий контракт данных:
[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 дает наилучшие результаты по совместимости.
Не связан с StackOverflow