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
18 private Nullable<int> m_invalidCultureId; // unrecognized culture Lcid
20 public CultureNotFoundException()
21 : base(DefaultMessage)
25 public CultureNotFoundException(String message)
30 public CultureNotFoundException(String paramName, String message)
31 : base(message, paramName)
35 public CultureNotFoundException(String message, Exception innerException)
36 : base(message, innerException)
40 public CultureNotFoundException(String paramName, int invalidCultureId, String message)
41 : base(message, paramName)
43 m_invalidCultureId = invalidCultureId;
46 public CultureNotFoundException(String message, int invalidCultureId, Exception innerException)
47 : base(message, innerException)
49 m_invalidCultureId = invalidCultureId;
52 public CultureNotFoundException(String paramName, string invalidCultureName, String message)
53 : base(message, paramName)
55 m_invalidCultureName = invalidCultureName;
58 public CultureNotFoundException(String message, string invalidCultureName, Exception innerException)
59 : base(message, innerException)
61 m_invalidCultureName = invalidCultureName;
64 protected CultureNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) {
65 m_invalidCultureId = (Nullable<int>) info.GetValue("InvalidCultureId", typeof(Nullable<int>));
66 m_invalidCultureName = (string) info.GetValue("InvalidCultureName", typeof(string));
69 [System.Security.SecurityCritical] // auto-generated_required
70 public override void GetObjectData(SerializationInfo info, StreamingContext context) {
72 throw new ArgumentNullException("info");
74 Contract.EndContractBlock();
75 base.GetObjectData(info, context);
76 Nullable<int> invalidCultureId = null;
77 invalidCultureId = m_invalidCultureId;
78 info.AddValue("InvalidCultureId", invalidCultureId, typeof(Nullable<int>));
79 info.AddValue("InvalidCultureName", m_invalidCultureName, typeof(string));
81 public virtual Nullable<int> InvalidCultureId
83 get { return m_invalidCultureId; }
86 public virtual string InvalidCultureName
88 get { return m_invalidCultureName; }
91 private static String DefaultMessage
95 return Environment.GetResourceString("Argument_CultureNotSupported");
99 private String FormatedInvalidCultureId
103 if (InvalidCultureId != null)
105 return String.Format(CultureInfo.InvariantCulture,
106 "{0} (0x{0:x4})", (int)InvalidCultureId);
108 return InvalidCultureName;
112 public override String Message
116 String s = base.Message;
118 m_invalidCultureId != null ||
119 m_invalidCultureName != null)
121 String valueMessage = Environment.GetResourceString("Argument_CultureInvalidIdentifier", FormatedInvalidCultureId);
124 return s + Environment.NewLine + valueMessage;