FaultContract<T> - что это значит?

Я должен создать сервис 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<>] в моем случае, я видел примеры с [FaultContract(typeof(UserNotFound))]], но никогда не видел [FaultContract <>]

1 ответ

Извините за поздний ответ, но я столкнулся с чем-то похожим, и я хотел бы поделиться тем, что я нашел:

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!");
Другие вопросы по тегам