private void Init() { _message = null; _stackTrace = null; _dynamicMethods = null; HResult = __HResults.COR_E_EXCEPTION; _xcode = _COMPlusExceptionCode; _xptrs = (IntPtr) 0; // Initialize the WatsonBuckets to be null _watsonBuckets = null; // Initialize the watson bucketing IP _ipForWatsonBuckets = UIntPtr.Zero; #if FEATURE_SERIALIZATION _safeSerializationManager = new SafeSerializationManager(); #endif // FEATURE_SERIALIZATION }
private void OnDeserialized(StreamingContext context) { _stackTrace = null; // We wont serialize or deserialize the IP for Watson bucketing since // we dont know where the deserialized object will be used in. // Using it across process or an AppDomain could be invalid and result // in AV in the runtime. // // Hence, we set it to zero when deserialization takes place. _ipForWatsonBuckets = UIntPtr.Zero; #if FEATURE_SERIALIZATION if (_safeSerializationManager == null) { _safeSerializationManager = new SafeSerializationManager(); } else { _safeSerializationManager.CompleteDeserialization(this); } #endif // FEATURE_SERIALIZATION }
protected Exception(SerializationInfo info, StreamingContext context) { if (info == null) { throw new ArgumentNullException("info"); } this._className = info.GetString("ClassName"); this._message = info.GetString("Message"); this._data = (IDictionary)info.GetValueNoThrow("Data", typeof(IDictionary)); this._innerException = (Exception)info.GetValue("InnerException", typeof(Exception)); this._helpURL = info.GetString("HelpURL"); this._stackTraceString = info.GetString("StackTraceString"); this._remoteStackTraceString = info.GetString("RemoteStackTraceString"); this._remoteStackIndex = info.GetInt32("RemoteStackIndex"); this._exceptionMethodString = (string)info.GetValue("ExceptionMethod", typeof(string)); this.HResult = info.GetInt32("HResult"); this._source = info.GetString("Source"); this._watsonBuckets = info.GetValueNoThrow("WatsonBuckets", typeof(byte[])); this._safeSerializationManager = (info.GetValueNoThrow("SafeSerializationManager", typeof(SafeSerializationManager)) as SafeSerializationManager); if (this._className == null || this.HResult == 0) { throw new SerializationException(Environment.GetResourceString("Serialization_InsufficientState")); } if (context.State == StreamingContextStates.CrossAppDomain) { this._remoteStackTraceString += this._stackTraceString; this._stackTraceString = null; } }
private void OnDeserialized(StreamingContext context) { this._stackTrace = null; this._ipForWatsonBuckets = UIntPtr.Zero; if (this._safeSerializationManager == null) { this._safeSerializationManager = new SafeSerializationManager(); return; } this._safeSerializationManager.CompleteDeserialization(this); }
private void Init() { this._message = null; this._stackTrace = null; this._dynamicMethods = null; this.HResult = -2146233088; this._xcode = -532462766; this._xptrs = (IntPtr)0; this._watsonBuckets = null; this._ipForWatsonBuckets = UIntPtr.Zero; this._safeSerializationManager = new SafeSerializationManager(); }