3

实际上,这个问题应该有一个直接的答案(关于下面的“对象”属性):

具有以下数据合同:

    [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 是否知道如何从定义的已知类型序列化/反序列化对象。

4

1 回答 1

1

只要客户端可以从 WSDL 正确生成类型,就应该没问题。例如,根据客户端,它可能会将 C# 更改List<Transaction>为 aTransaction[]或相当等价的东西。您还需要选择正确的装订类型。通常 basicHttpBinding 的互操作性效果最好。

于 2011-05-12T15:26:19.963 回答