0

就在这里呆了半天;

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 ”的类型的数据:K结果'。反序列化器不知道映射到此名称的任何类型。考虑使用 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; }
  }

仍然有同样的例外。

已经谢谢大家了。

4

0 回答 0