FaultContract <t> - 这意味着什么?</t>

时间:2014-10-30 08:24:38

标签: wcf faultcontract

我应该创建返回用户数据的wcf服务,接口和DataContract如下:

[ServiceContract]
public interface IUserInfoProvider{
[FaultContract<UserNotFound>]
public UserInfo GetUserInfo(Guid userId)}

[DataContract]
public class UserInfo
{
     [DataMember] public Guid UserId { get; set; } 
     [DataMember] public bool? AdvertisingOptIn { get; set; } 
     [DataMember] public string CountryIsoCode { get; set; }
     [DataMember] public DateTime DateModified { get; set; }
     [DataMember] public string Locale { get; set; }
}

我没有特殊的服务客户端 - 请求(get,post)从fiddler或rest插件运行浏览器。

请描述如何在我的情况下实现[FaultContract&lt;&gt;],我看到了[FaultContract(typeof(UserNotFound))]的示例,但从未见过[FaultContract&lt;&gt;]

1 个答案:

答案 0 :(得分:0)

对于迟到的回答感到抱歉,但我遇到了类似的问题,我想分享一下我发现的内容:

可以使用FaultContract:https://msdn.microsoft.com/en-us/library/ff650547.aspx

来自MSDN:

  

为了支持使用自定义错误,WCF服务使用   FaultContractAttribute正式指定可以返回的错误   来自服务业务。 FaultContractAttribute中指定的类型   必须可序列化为DataContract,SerializableAttribute或   ISerializable的。使用自定义错误抛出FaultException时   在FaultContract中定义,客户端应用程序也可以捕获这些   使用FaultException泛型类型的特定错误。

示例:

throw new FaultException<InvalidNameFault>(fault, "Invalid Name!");