/// <summary>
        /// Constructs a new instance of the OperationException class.
        /// </summary>
        /// <param name="objToFetchTypeFrom">If object is Type, then its FullName will be taken as an errorIdentifier start substring. Otherwise GetType() operation will be executed first to fetch Type object.</param>
        /// <param name="errorSubIdentifier">ErrorSubIdentifier being added to the end of the object's type FullName.</param>
        /// <param name="userFriendlyMessage">User friendly message that can be shown to an end-user.</param>
        public OperationException(object objToFetchTypeFrom, string errorSubIdentifier, string userFriendlyMessage)
            : base(userFriendlyMessage)
        {
            string errorIdentifier = null;

            if (objToFetchTypeFrom is Type)
                errorIdentifier = ((Type) objToFetchTypeFrom).FullName + "." + errorSubIdentifier;
            else if (objToFetchTypeFrom != null)
                errorIdentifier = objToFetchTypeFrom.GetType().FullName + "." + errorSubIdentifier;
            else
                errorIdentifier = errorSubIdentifier;

            this.OperationErrorMessage = new OperationErrorMessage(errorIdentifier, userFriendlyMessage);
        }
        /// <summary>
        /// Constructs a new instance of the OperationException class.
        /// </summary>
        /// <param name="objToFetchTypeFrom">If object is Type, then its FullName will be taken as an errorIdentifier start substring. Otherwise GetType() operation will be executed first to fetch Type object.</param>
        /// <param name="errorSubIdentifier">ErrorSubIdentifier being added to the end of the object's type FullName.</param>
        /// <param name="userFriendlyMessage">User friendly message that can be shown to an end-user.</param>
        public OperationException(object objToFetchTypeFrom, string errorSubIdentifier, string userFriendlyMessage) : base(userFriendlyMessage)
        {
            string errorIdentifier = null;

            if (objToFetchTypeFrom is Type)
            {
                errorIdentifier = ((Type)objToFetchTypeFrom).FullName + "." + errorSubIdentifier;
            }
            else if (objToFetchTypeFrom != null)
            {
                errorIdentifier = objToFetchTypeFrom.GetType().FullName + "." + errorSubIdentifier;
            }
            else
            {
                errorIdentifier = errorSubIdentifier;
            }

            this.OperationErrorMessage = new OperationErrorMessage(errorIdentifier, userFriendlyMessage);
        }
 /// <summary>
 /// Contructs an instance of the ChannelClosed class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public ChannelClosed(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the CanNotCreateOrOpenSharedMemory class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public CanNotCreateOrOpenSharedMemory(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the CanNotConnectToRemoteHost class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public CanNotConnectToRemoteHost(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the TrialConditionExceeded class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public TrialConditionExceeded(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the TransportConnectionFailed class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public TransportConnectionFailed(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the TooLargePacketSize class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public TooLargePacketSize(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the SspiError class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SspiError(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the QueueIsOverloaded class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public QueueIsOverloaded(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the PasswordKnowledgeIsNotProved class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public PasswordKnowledgeIsNotProved(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the NoSessionAvailable class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public NoSessionAvailable(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the NoServices class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public NoServices(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the NoServerChannel class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public NoServerChannel(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Initializes a new instance of the OperationException class with serialized data.
 /// </summary>
 /// <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
 /// <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
 public OperationException(SerializationInfo info, StreamingContext context)
     : base(info, context)
 {
     this.OperationErrorMessage = info.GetValue("oe", typeof(OperationErrorMessage)) as OperationErrorMessage;
 }
 /// <summary>
 /// Initializes a new instance of the OperationException class with serialized data.
 /// </summary>
 /// <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
 /// <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
 public OperationException(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     this.OperationErrorMessage = info.GetValue("oe", typeof(OperationErrorMessage)) as OperationErrorMessage;
 }
 /// <summary>
 /// Contructs an instance of the ReconnectionFailed class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public ReconnectionFailed(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the ThreadPoolLimitExceeded class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public ThreadPoolLimitExceeded(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the RemoteHostDoesNotRespond class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public RemoteHostDoesNotRespond(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the TooLargePortionToReceive class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public TooLargePortionToReceive(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the SendNoSender class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SendNoSender(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the WrongSignature class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public WrongSignature(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the SendTimeout class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SendTimeout(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the CanNotAcceptIncomingConnection class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public CanNotAcceptIncomingConnection(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the SendTransportProblem class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SendTransportProblem(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the CanNotCreateOrOpenNamedEvent class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public CanNotCreateOrOpenNamedEvent(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the ServerDidNotReply class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public ServerDidNotReply(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the CanNotResolveHostName class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public CanNotResolveHostName(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the ServerHasBeenRestarted class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public ServerHasBeenRestarted(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the OperationException.
 /// </summary>
 /// <param name="operationErrorMessage">The error message.</param>
 public OperationException(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage.UserFriendlyMessage)
 {
     this.OperationErrorMessage = operationErrorMessage;
 }
 /// <summary>
 /// Contructs an instance of the SharedMemoryError class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SharedMemoryError(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the SspiDidNotProvideRequestedFeature class.
 /// </summary>
 /// <param name="operationErrorMessage"></param>
 public SspiDidNotProvideRequestedFeature(OperationErrorMessage operationErrorMessage)
     : base(operationErrorMessage)
 {
 }
 /// <summary>
 /// Contructs an instance of the OperationException.
 /// </summary>
 /// <param name="operationErrorMessage">The error message.</param>
 public OperationException(OperationErrorMessage operationErrorMessage) : base(operationErrorMessage.UserFriendlyMessage)
 {
     this.OperationErrorMessage = operationErrorMessage;
 }