RIA 서비스에서 FaultContract 특성을 사용하여 Silverlight에 대한 예외의 일부로 추가 정보를 전달할 수있는 방법은 무엇입니까?RIA 서비스 및 FaultContract
답변
그래서 나는 decompiled RIA Services 코드를 사냥하러 갔다. 클라이언트로 전송되는 오류 정보를 크게 변경하는 것처럼 보이지는 않습니다.
DomainService에서 OnError()
메서드를 재정의 할 수 있지만 사용자 지정 예외 유형 인 경우에도 임의의 정보를 다시 전달할 수는 없습니다.
이유는 DomainServices.Hosting.QueryProcessor
클래스의 예외 처리에 포함되어 있습니다.
도메인 작업에서 처리되지 않은 예외가 발생하면이 작업이 취소되고 결국 FaultException()이 발생합니다 (기본적으로 WCF가 처리 함).
Unfortuantely의 DomainServiceFault
클래스는 ... 그것은 단지 ...
public class DomainServiceFault
{
public int ErrorCode { get; set; }
public string ErrorMessage { get; set; }
public bool IsDomainException { get; set; }
public string StackTrace { get; set; }
public IEnumerable<ValidationResultInfo> OperationErrors { get; set; }
public IEnumerable<ValidationResult> GetValidationErrors()
{}
}
을 몇 가지 속성을 매우 경량이되고,이 때문에 같은 ServiceUtility.CreateFaultExceotion()
에 채워집니다 :
DomainServiceFault detail = new DomainServiceFault();
<snip/>
detail.ErrorCode = domainException.ErrorCode;
detail.ErrorMessage = ServiceUtility.FormatExceptionMessage((Exception) domainException);
detail.IsDomainException = true;
if (current != null && !current.IsCustomErrorEnabled)
detail.StackTrace = domainException.StackTrace;
return new FaultException<DomainServiceFault>(detail, new FaultReason(new FaultReasonText(detail.ErrorMessage ?? string.Empty, CultureInfo.CurrentCulture)));
그것은 가치 유효성 검사 오류가 아닌 예외의 경우에는 OperationErrors
이 채워지지 않습니다.
그래서이 모든 결과는 사용자 정의 예외 정보를 래핑하거나 DomainService 오류 처리기 (실제로는 불행한 것)에 첨부 할 수 있다고 생각하지 않는다는 것입니다.
이 작은 단점으로 인해 RIA Services 프레임 워크가 현실 세계 시나리오에 대비할 준비가되지 않은 것처럼 느껴집니다 ... 고마워요! – sternr
@sternr 우리는 종종 그런 식으로 느낍니다. RIA Services는 기본 데이터 모델 및 응용 프로그램에 매우 적합하다고 생각합니다. 매우 상세하고 복잡한 응용 프로그램의 경우 어려움을 겪습니다. –
- 1. ASP.NET이없는 Silverlight 및 RIA 서비스
- 2. RIA 서비스 간 서비스 및 양식 인증
- 3. .NET RIA 서비스/WCF 서비스
- 4. WCF를 통한 RIA 서비스
- 5. 실버 WCF RIA 서비스
- 6. RIA 서비스 필터 설명자
- 7. RIA 서비스 - 페이지 매기기
- 8. .NET RIA 서비스 및 EF에서의 상속
- 9. Silverlight 4.0 및 WCF RIA 서비스 보안
- 10. RIA 서비스 및 실버 응용 프로그램
- 11. RIA 서비스 및 사용자 정의 유형의 유형
- 12. Silverlight 3 - RIA 서비스 및 LINQ
- 13. Silverlight 4 Ria 서비스 및 다중 스레드
- 14. Silverlight, RIA 서비스 및 데이터에서 데이터 보호
- 15. Silverlight 및 .NET RIA 서비스 - 사용자 관리
- 16. WCF Ria 서비스 및 순환 참조
- 17. Silverlight 4, RIA 인증 서비스 및 역할
- 18. WCF RIA SSL을 통한 서비스 및 통신
- 19. WCF RIA 서비스
- 20. RIA 서비스 검증하기 위해
- 21. 단위 테스트 RIA 서비스
- 22. RIA 서비스 오류
- 23. Silverlight RIA 서비스 호스팅
- 24. RIA 서비스 - 데이터베이스가 없습니까?
- 25. Ria 서비스 : 동기 DomainDataSource.SubmitChanges()
- 26. WCF RIA 서비스 도메인 서비스 메타 데이터
- 27. WCF : FaultContract (typeof (ExceptionDetail)) 문제
- 28. WCF RIA 서비스 빌드 오류
- 29. Silverlight - RIA 서비스 데이터/서비스 문제
- 30. RIA 서비스 클라이언트 코드 생성 서비스 제외
나는 같은 질문을 가지고 있습니다 ... 아직 아무것도 발견하지 못했습니까? – sebagomez