В основном я делаю преобразование из исключений в класс GenericFaultException (Ниже фрагмент кода использует C# как язык.Generic преобразования
Смотрите детали ниже
FaultException<T>:FaultException(FaultException derived from exception)
FaultException:Exception
Я создал faultExceptionObject с помощью ниже строки кода
public class ValidationFault: IValidationFault
{
}
FaultException<ValidationFault> faultExceptionObject=new FaultException<ValidationFault>(new ValidationFault())
у меня есть обработка ошибок слоя, которые не имеют ни малейшего представления о классе ValidationFault, только он знает IValidationFault.
public Exception HandleException(Exception exception, Guid handlingInstanceId)
{
FaultException<IValidationFault> genericFaultException = exception as FaultException<IValidationFault>;
//********genericFaultException is always NULL**********************
IValidationFault fault = genericFaultException.Detail as IValidationFault;
}
По какой-то причине линия:
FaultException<IValidationFault> genericFaultException = exception as FaultException<IValidationFault>;
приводит genericFaultException всегда равна нулю, но из QuickWatch я вижу Исключение типа FaultException<ValidationFault>
. Как мне перевести с Exception
в FaultException<IValidationFault>
?
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Заранее спасибо
Похож на C#, но я не должен был догадываться. Добавьте соответствующий тег языка. –
Это определенно о дженериках. –
@Tejas: да, теперь это на самом деле. Но, пожалуйста, прочитайте V1;) – quetzalcoatl