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")

有人知道怎么解决这个问题吗?

WCF服务操作返回null值

您可以尝试扩展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...
    }
}