WCF - Objeto como tipo conhecido -> interoperável?
-
12-11-2019 - |
Pergunta
Na verdade, deveria haver uma resposta direta para esta pergunta (é sobre a propriedade "Object" abaixo):
Tendo o seguinte contrato de dados:
[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{}
}
e o seguinte contrato de serviço:
public interface IService
{
[OperationContract(Name = "GetData")]
List<Transaction> GetTransact();
}
Isso será interoperável?Dizendo de Java, gSoap?Se não, como posso torná-lo interoperável?
Obrigado.
EDITAR:Eu só quero saber se o WCF sabe como serializar/desserializar o objeto de/para os tipos conhecidos definidos.
Solução
Tudo bem, desde que o cliente possa gerar os tipos corretamente a partir do WSDL.Por exemplo, dependendo do cliente, pode alterar o C# List<Transaction>
dentro de Transaction[]
ou algo bastante equivalente.Você também precisará selecionar o tipo de encadernação correto.Normalmente basicHttpBinding tem os melhores resultados em termos de interoperabilidade.