我应该如何从WCF服务返回状态?

我应该如何从WCF服务返回状态?,wcf,.net-4.0,Wcf,.net 4.0,我的WCF服务有各种返回整数、字符串、列表和流的方法。我想添加字符串、枚举或???指示完成时调用的状态。它可以是一个简单的布尔,表示成功或失败。我还不确定。问题是,我如何实现这一点?我应该在签名中指定out参数吗?有没有更好、更常用的方法来实现这一点 更新1 如果发生异常,将对其进行处理、记录等。想到的一个场景是,用户提交的内容没有返回结果。例如 ZZ的state缩写将不返回任何内容,但我仍然希望指出该方法已成功运行。您可能希望利用类以及解决类似情况的类。希望有帮助。如果您希望指示的“状态”是各

我的WCF服务有各种返回整数、字符串、列表和流的方法。我想添加字符串、枚举或???指示完成时调用的状态。它可以是一个简单的布尔,表示成功或失败。我还不确定。问题是,我如何实现这一点?我应该在签名中指定out参数吗?有没有更好、更常用的方法来实现这一点

更新1 如果发生异常,将对其进行处理、记录等。想到的一个场景是,用户提交的内容没有返回结果。例如
ZZ的state缩写将不返回任何内容,但我仍然希望指出该方法已成功运行。

您可能希望利用类以及解决类似情况的类。希望有帮助。

如果您希望指示的“状态”是各种错误,那么,对于基于SOAP的服务,您应该使用SOAP错误。

如果发生错误-返回SOAP错误-这一点很清楚

现在,如果发生其他情况,或者希望以某种方式通知用户状态/总行数或其他信息,最好的方法是使用包含所有这些信息的响应类:

[DataContract]
public class YourMethodResponse
{
    [DataMember]
    public List<string> ActualResults;

    [DataMember]
    public int StatusOfOperation;

    [DataMember]
    public int TotalRowsUpdated;
}

这样,您就有了一个清晰的界面,一切都得到了很好的正确处理,并且对于要返回的内容(标志、枚举、您可以想到的任何内容!)具有完全的灵活性。

要指示失败,只需抛出一个异常即可。如果您想添加有关故障原因的更多信息,可以使用use service Fault:。@marc_-s-谢谢。我确实看到过这种方法的例子。我清楚地知道,这不适用于溪流。对吗?如果正确,您将如何处理相同的场景,但实际结果将作为流返回?
[OperationContract]
public List<string> UpdateStrings();
[OperationContract]
public YourMethodResponse UpdateStrings();