在客户端重新创建例外

时间:2014-03-10 11:11:55

标签: c# json rest exception reflection

我遇到与Recreate an exception that is serialized in a JSON response完全相同的问题,但我设法实例化了正确的异常类型:

public class ServiceExceptionData
{
    public string Type { get; set; }
    public string Message { get; set; }
    public string ErrorCode { get; set; }
    public string StackTrace { get; set; }
}
...
private static void handleServiceException(ServiceExceptionData serviceException)
{
   // get exception type
   Type t = Type.GetType(serviceException.Type);

   // create exception instance
   var exceptionInstance = Activator.CreateInstance(t);

   // set exception read-only properties: Message, StackTrace
   ???

我尝试了很多东西来设置这些属性,以下是其中一些:

但它不起作用。

Exception的属性定义为:

public virtual string Message { get; }
public virtual string StackTrace { get; }

有没有办法在我有异常实例后设置它们(例如通过获取属性的字段并使用SetValueDirect),或者我应该放弃并创建派生类并覆盖属性以使它们公开设置器?

0 个答案:

没有答案