从WCF服务操作返回null值

时间:2012-01-17 12:39:36

标签: c# wcf

我有一个WCF服务,其操作合同返回null值。那就是:它应该返回一些自定义类'ProgressReport',但在客户端应用程序中它显示为null。在WCF服务本身中,自定义类被实例化并且没有错误地返回,并且在任何时候都不会变为空。

'ProgressReport'类未定义为DataContract,因为它是在另一个程序集中定义的。

对于返回'ProgressReport'的操作,WcfTestClient通知我它无法执行操作,因为它使用类型'ProgressReport'。 我已经尝试添加一个带有System.Object的operationcontract作为返回类型,但它给了我同样的错误(无法执行操作,因为它使用类型'System.Object')

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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