.NET 4.5, ExceptionDispatchInfo :
Exception exception = ...;
ExceptionDispatchInfo.Capture(exception).Throw();
.NET 4.0, :
Exception exception = ...;
typeof(Exception).InvokeMember("PrepForRemoting",
BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod,
null, exception, new object[0]);
throw exception;