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

具有以下数据合同:

    [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#的FlainodiceTagcode更改为List<Transaction>或相当等效的内容。您还需要选择正确的绑定类型。通常basichttpbinding为互操作性具有最佳结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top