WCF服务操作返回null值
本文关键字:null 返回 操作 服务 WCF | 更新日期: 2023-09-27 18:20:27
我有一个WCF服务,该服务具有返回null值的操作约定。也就是说:它应该返回一些自定义类"ProgressReport",但在客户端应用程序中它显示为null。在WCF服务本身中,自定义类被实例化并返回,不会出现错误,也不会在任何时候变为null。
"ProgressReport"类未定义为DataContract,因为它是在另一个程序集中定义的。
对于返回"ProgressReport"的操作,WcfTestClient通知我它无法执行操作,因为它使用了类型"ProgressReports"。我尝试添加一个以System.Object作为返回类型的操作合约,但它给了我相同的错误(无法执行操作,因为它使用了类型"System.Object")
有人知道怎么解决这个问题吗?
您可以尝试扩展ProgressReport
-类(如果它不是密封的)并将其定义为DataContract
(但我认为这对类的属性没有帮助,因为它们需要标记为DataMembers
),或者创建一个自己的类作为一种代理并返回此对象:
[DataContract]
public class ProgressReportWcf : ProgressReport
{
}
或
[DataContract]
public class ProgressReportWcf
{
[DataMember]
public int Id { get; set; }
//aso...
public ProgressReportWcf(ProgressReport report)
{
Id = report.Id;
//aso...
}
}