저는 처음으로 WCF 서비스를 작성하고 있습니다. 서비스와 모든 클라이언트 (적어도 현재는)는 C#으로 작성되었습니다. 이 서비스는 전달 된 데이터에 대해 많은 입력 검증을해야하므로 유효하지 않은 데이터를 다시 클라이언트에 표시 할 방법이 필요합니다. 나는 결함과 예외에 대한 많은 것을 읽었으며, 예외적으로 예외를 래핑하고, 많은 혼란스러운 기사들이 나를 혼란에 빠뜨리고있다. 이 사건을 처리하는 적절한 방법은 무엇입니까?WCF 오류 및 예외
예외를 피하고 결과를 반환해야합니까? 특수 Wault 또는 특수 Exception을 작성해야합니까? 아니면 WCF가 아닌 유효성 검사 함수처럼 ArgumentExceptions를 throw해야합니까?
[DataContract]
public class ValidationFault
{
[DataMember]
public Dictionary<string, string> Errors { get; private set; }
[DataMember]
public bool Fatal { get; private set; }
[DataMember]
public Guid SeriesIdentifier { get; private set; }
public ValidationFault(Guid id, string argument, string error, bool fatal)
{
SeriesIdentifier = id;
Errors = new Dictionary<string, string> {{argument, error}};
Fatal = fatal;
}
public void AddError(string argument, string error, bool fatal)
{
Errors.Add(argument, error);
Fatal |= fatal;
}
}
그리고 방법에 [FaultContract (대해서 typeof (ValidationFault를))]있다 :
내가 지금 (MSDN에 영향을) 한 코드이다. 이것이 이것을 접근하는 "올바른"방법입니까?
관심있는 사람은 EntLib 유효성 검사 블록에 대한 초보자 안내서의 [link] (http://msdn.microsoft.com/en-us/library/ff953182(v=pandp.50) .aspx) . – Crackerjack