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