1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
6 namespace System.Globalization {
9 using System.Runtime.Serialization;
10 using System.Threading;
11 using System.Diagnostics.Contracts;
13 [System.Runtime.InteropServices.ComVisible(true)]
15 public partial class CultureNotFoundException : ArgumentException, ISerializable
17 private string m_invalidCultureName; // unrecognized culture name
19 private Nullable<int> m_invalidCultureId; // unrecognized culture Lcid
20 #endif //!FEATURE_CORECLR
22 public CultureNotFoundException()
23 : base(DefaultMessage)
27 public CultureNotFoundException(String message)
32 public CultureNotFoundException(String paramName, String message)
33 : base(message, paramName)
37 public CultureNotFoundException(String message, Exception innerException)
38 : base(message, innerException)
42 public CultureNotFoundException(String paramName, int invalidCultureId, String message)
43 : base(message, paramName)
45 m_invalidCultureId = invalidCultureId;
48 public CultureNotFoundException(String message, int invalidCultureId, Exception innerException)
49 : base(message, innerException)
51 m_invalidCultureId = invalidCultureId;
53 #endif //!FEATURE_CORECLR
55 public CultureNotFoundException(String paramName, string invalidCultureName, String message)
56 : base(message, paramName)
58 m_invalidCultureName = invalidCultureName;
61 public CultureNotFoundException(String message, string invalidCultureName, Exception innerException)
62 : base(message, innerException)
64 m_invalidCultureName = invalidCultureName;
67 protected CultureNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) {
69 m_invalidCultureId = (Nullable<int>) info.GetValue("InvalidCultureId", typeof(Nullable<int>));
70 #endif //!FEATURE_CORECLR
71 m_invalidCultureName = (string) info.GetValue("InvalidCultureName", typeof(string));
74 [System.Security.SecurityCritical] // auto-generated_required
75 public override void GetObjectData(SerializationInfo info, StreamingContext context) {
77 throw new ArgumentNullException("info");
79 Contract.EndContractBlock();
80 base.GetObjectData(info, context);
81 Nullable<int> invalidCultureId = null;
83 invalidCultureId = m_invalidCultureId;
84 #endif //!FEATURE_CORECLR
85 info.AddValue("InvalidCultureId", invalidCultureId, typeof(Nullable<int>));
86 info.AddValue("InvalidCultureName", m_invalidCultureName, typeof(string));
89 public virtual Nullable<int> InvalidCultureId
91 get { return m_invalidCultureId; }
93 #endif //!FEATURE_CORECLR
95 public virtual string InvalidCultureName
97 get { return m_invalidCultureName; }
100 private static String DefaultMessage
104 return Environment.GetResourceString("Argument_CultureNotSupported");
108 private String FormatedInvalidCultureId
113 if (InvalidCultureId != null)
115 return String.Format(CultureInfo.InvariantCulture,
116 "{0} (0x{0:x4})", (int)InvalidCultureId);
118 #endif //!FEATURE_CORECLR
119 return InvalidCultureName;
123 public override String Message
127 String s = base.Message;
130 m_invalidCultureId != null ||
131 #endif //!FEATURE_CORECLR
132 m_invalidCultureName != null)
134 String valueMessage = Environment.GetResourceString("Argument_CultureInvalidIdentifier", FormatedInvalidCultureId);
137 return s + Environment.NewLine + valueMessage;