/// <summary>
        /// Reserved for internal use.
        /// </summary>
        /// <param name="info">Reserved for internal use.</param>
        /// <param name="context">Reserved for internal use.</param>
        protected OAuthTokenRequestException(
            SerializationInfo info,
            StreamingContext context) : base(info, context)
        {
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            Details = new OAuthErrorDetails
            {
                Description = info.GetString("Description"),
                Error       = info.GetString("Error")
            };
        }
        /// <summary>
        /// Reserved for internal use.
        /// </summary>
        /// <param name="info">Reserved for internal use.</param>
        /// <param name="context">Reserved for internal use.</param>
        protected OAuthTokenRequestException(
            SerializationInfo info,
            StreamingContext context) : base(info, context)
        {
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            Details = new OAuthErrorDetails
            {
                Description = info.GetString("Description"),
                Error = info.GetString("Error")
            };
        }
 /// <summary>
 /// Initializes a new instance of the OAuthTokenRequestException with the specified error message, OAuth error details, and inner exception.
 /// </summary>
 /// <param name="message">The error message.</param>
 /// <param name="details">The details of an authentication error returned from the Microsft Account authorization server.</param>
 /// <param name="inner">The inner exception.</param>
 public OAuthTokenRequestException(string message, OAuthErrorDetails details, Exception inner)
     : base(message, inner)
 {
     Details = details;
 }
 /// <summary>
 /// Initializes a new instance of the OAuthTokenRequestException with the specified error message, OAuth error details, and inner exception.
 /// </summary>
 /// <param name="message">The error message.</param>
 /// <param name="details">The details of an authentication error returned from the Microsft Account authorization server.</param>
 /// <param name="inner">The inner exception.</param>
 public OAuthTokenRequestException(string message, OAuthErrorDetails details, Exception inner)
     : base(message, inner)
 {
     Details = details;
 }