我有一个 WCF 服务,其运营合同为
void AddQuery(IQuery Query);
我的 IQuery 是这样的
public interface IQuery
{
Guid Id { get; set; }
string QueryNo { get; set; }
string Status { get; set; }
IData data { get; set; }
}
IQuery 的实现在
[Serializable]
public class Query : IQuery
{
Guid Id { get; set; }
string QueryNo { get; set; }
string Status { get; set; }
IData data { get; set; }
}
当我试图从客户端发送我的对象时
public void AddQuery(IQuery query)
{
try
{
// I am sure that the query object is not null and it is implemented
objServiceClient.AddEnquiry(query);
}
catch (Exception ex)
{
}
}
但我得到了一个例外
尝试序列化参数时出错。InnerException 消息是 'Type 'ViewModels.Query' ,数据合同名称为 'Query: http://schemas.datacontract.org/2004/07/ViewModels ' 不是预期的。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。有关更多详细信息,请参阅 InnerException。
谁能建议我解决此错误的方法是什么?