/// <summary>
 /// Initializes a new instance of the <see cref="T:SharpNetwork.SocketStreamException" /> class.
 /// </summary>
 /// <param name="error">The reason for aborting socket's connection.</param>
 /// <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
 public SocketStreamException(SocketStreamError error, Exception innerException) : base(null, innerException)
 {
     Error = error;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:SharpNetwork.SocketStreamException" /> class.
 /// </summary>
 /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown. </param>
 /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination. </param>
 protected SocketStreamException(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     Error = (SocketStreamError)info.GetInt32(nameof(Error));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="T:SharpNetwork.SocketStreamException" /> class.
 /// </summary>
 /// <param name="error">The reason for aborting socket's connection.</param>
 public SocketStreamException(SocketStreamError error) : this(error, null)
 {
 }