具有已知类型问题的WCF - 反序列化器不知道映射到此合同的任何类型

时间:2014-05-16 16:59:18

标签: c# wcf known-types

在这里呆了半天;

1)我从服务中返回此课程;

  public class ServiceResult
  {
    public object Value { get; set; }
    public string ExceptionMessage { get; set; }
    public double Duration { get; set; }
    public int Count { get; set; }
  }

2)

  public class KResult
  {
    public int Count { get; set; }
    public KResultItem[] Items { get; set; }
  }

3)

  public class KResultItem
  {
    public string Name { get; set; }
    public string Surname { get; set; }
    public DateTime Date { get; set; }
  }

当我尝试将Value设置为我的2级并反序列化它时,我得到了异常。

我从wcf获得了这个例外;

异常; 元素' http://schemas.datacontract.org/2004/07/Test.Services:Value'包含映射到名称' http://schemas.datacontract.org/2004/07/Test.Services:KResult'的类型的数据。反序列化器不知道映射到此名称的任何类型。考虑使用DataContractResolver或添加对应于' KResult'到已知类型列表 - 例如,通过使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型列表。

我的界面;

  [ServiceContract]
  public interface IBaseService
  {
    [OperationContract]
    ServiceResult Execute(ServiceCommand serviceCommand);
  }

说真的,我不知道我现在想念的是什么,但是我无法通过这个,任何帮助都会很棒,让我的日子过得真快!

第一行动

我添加了来自异常ServiceResult类的建议,如下所示;

  [KnownType(typeof(KResult))]
  [KnownType(typeof(KResultItem))]
  public class ServiceResult
  {
    public object Value { get; set; }
    public string ExceptionMessage { get; set; }
    public double Duration { get; set; }
    public int Count { get; set; }
  }

仍然有同样的例外。

非常感谢大家。

0 个答案:

没有答案