이 질문은 이전에 다른 방법으로 요청되었지만 응답이 도움이되지 않습니다. 왜냐하면 (1) 내장 된 Exception
클래스를 제어 할 수 없기 때문에 2) Activator.CreateInstance()
은 진정한 동적 유형이 필요한 객체/인스턴스를 반환합니다.동적 제네릭 형식을 요구하는 예외 확장 메서드
내가 잡는 예외를 기반으로 FaultException
을 내 WCF 서비스 밖으로 던질 수있는 확장 메서드를 만들려고합니다. 예 :
try {
...
}
catch (ArgumentNullException exc) {
throw new FaultException<ArgumentNullException>(exc);
}
은 간단합니다.
public static void ThrowFaultException(this Exception exc) {
// Gives me the correct type...
Type exceptionType = exc.GetType();
// But how the heck do I use it?
throw new FaultException<???>(exc);
}
:
나는 물론, 너무 신경
try {
...
}
catch (Exception exc) {
exc.ThrowFaultException();
}
은 확장 메서드의 구현 : 나는 일반적인 방법으로이를 확장 할 경우, 나는 같은 확장 클래스를 사용하는 것
대답은 here과 here는 도움이되지 않습니다. 어떤 아이디어?
왜 수 있습니다 ' 'Activator.CreateInstance()'에서 'Exception'으로 반환 값을 던지겠습니까? 그것은 여전히 실제 유형으로 던져 질 것입니까? –
일반화 된 메서드가 아닌 사용자 지정 코드에서 예외를 throw하는 것이 좋습니다. 그러면 VS.Net 및 다른 코드 분석기 (동료 포함)가 도달 할 수없는 코드 및 관련 문제를 감지하는 데 도움이됩니다. –
BR/DP> 호출자가 FaultException –