using System; namespace S7.Net { [Serializable] public class PlcException : Exception { public ErrorCode ErrorCode { get; } public PlcException(ErrorCode errorCode) : this(errorCode, $"PLC communication failed with error '{errorCode}'.") { } public PlcException(ErrorCode errorCode, Exception innerException) : this(errorCode, innerException.Message, innerException) { } public PlcException(ErrorCode errorCode, string message) : base(message) { ErrorCode = errorCode; } public PlcException(ErrorCode errorCode, string message, Exception inner) : base(message, inner) { ErrorCode = errorCode; } protected PlcException(System.Runtime.Serialization.SerializationInfo info,System.Runtime.Serialization.StreamingContext context) : base(info, context) { ErrorCode = (ErrorCode) info.GetInt32(nameof(ErrorCode)); } } }