/// <summary>
        /// Initializes a new instance of the <see cref="ComprenoTaskProcessingException"/> class with
        /// a specific message that describes the current exception, an inner exception and contains an internal error code.
        /// </summary>
        /// <param name="message">A message that describes the current exception.</param>
        /// <param name="inner">The inner exception.</param>
        /// <param name="errorCode">Internal error code.</param>
        /// <param name="compilationError">Information about the error that occurred when the semantic dictionary was being compiled.</param>
        public UserSemanticDictionaryProcessingException(string message, Exception inner, ErrorCode errorCode, UserSemanticDictionaryCompilationError compilationError)
            : base(message, inner, errorCode)
        {
            if (compilationError == null)
                throw new ArgumentNullException("compilationError");

            _compilationError = compilationError;
        }
 private UserSemanticDictionaryProcessingException(SerializationInfo info, StreamingContext context)
     : base(info, context)
 {
     _compilationError = (UserSemanticDictionaryCompilationError)info.GetValue("CompilationError", typeof(UserSemanticDictionaryCompilationError));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ComprenoTaskProcessingException"/> class with 
 /// a specific message that describes the current exception and contains an internal error code.
 /// </summary>
 /// <param name="message">A message that describes the current exception.</param>
 /// <param name="errorCode">Internal error code.</param>
 /// <param name="compilationError">Information about the error that occurred when the semantic dictionary was being compiled.</param>
 public UserSemanticDictionaryProcessingException(string message, ErrorCode errorCode, UserSemanticDictionaryCompilationError compilationError)
     : this(message, null, errorCode, compilationError)
 {
 }