146 lines
4.6 KiB
C#
146 lines
4.6 KiB
C#
// ==++==
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// ==--==
|
|
|
|
namespace System.Globalization {
|
|
|
|
using System;
|
|
using System.Runtime.Serialization;
|
|
using System.Threading;
|
|
using System.Diagnostics.Contracts;
|
|
|
|
[System.Runtime.InteropServices.ComVisible(true)]
|
|
[Serializable]
|
|
public class CultureNotFoundException : ArgumentException, ISerializable
|
|
{
|
|
private string m_invalidCultureName; // unrecognized culture name
|
|
#if !FEATURE_CORECLR
|
|
private Nullable<int> m_invalidCultureId; // unrecognized culture Lcid
|
|
#endif //!FEATURE_CORECLR
|
|
|
|
public CultureNotFoundException()
|
|
: base(DefaultMessage)
|
|
{
|
|
}
|
|
|
|
public CultureNotFoundException(String message)
|
|
: base(message)
|
|
{
|
|
}
|
|
|
|
public CultureNotFoundException(String paramName, String message)
|
|
: base(message, paramName)
|
|
{
|
|
}
|
|
|
|
public CultureNotFoundException(String message, Exception innerException)
|
|
: base(message, innerException)
|
|
{
|
|
}
|
|
#if !FEATURE_CORECLR
|
|
public CultureNotFoundException(String paramName, int invalidCultureId, String message)
|
|
: base(message, paramName)
|
|
{
|
|
m_invalidCultureId = invalidCultureId;
|
|
}
|
|
|
|
public CultureNotFoundException(String message, int invalidCultureId, Exception innerException)
|
|
: base(message, innerException)
|
|
{
|
|
m_invalidCultureId = invalidCultureId;
|
|
}
|
|
#endif //!FEATURE_CORECLR
|
|
|
|
public CultureNotFoundException(String paramName, string invalidCultureName, String message)
|
|
: base(message, paramName)
|
|
{
|
|
m_invalidCultureName = invalidCultureName;
|
|
}
|
|
|
|
public CultureNotFoundException(String message, string invalidCultureName, Exception innerException)
|
|
: base(message, innerException)
|
|
{
|
|
m_invalidCultureName = invalidCultureName;
|
|
}
|
|
|
|
protected CultureNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) {
|
|
#if !FEATURE_CORECLR
|
|
m_invalidCultureId = (Nullable<int>) info.GetValue("InvalidCultureId", typeof(Nullable<int>));
|
|
#endif //!FEATURE_CORECLR
|
|
m_invalidCultureName = (string) info.GetValue("InvalidCultureName", typeof(string));
|
|
}
|
|
|
|
[System.Security.SecurityCritical] // auto-generated_required
|
|
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
|
|
if (info==null) {
|
|
throw new ArgumentNullException("info");
|
|
}
|
|
Contract.EndContractBlock();
|
|
base.GetObjectData(info, context);
|
|
Nullable<int> invalidCultureId = null;
|
|
#if !FEATURE_CORECLR
|
|
invalidCultureId = m_invalidCultureId;
|
|
#endif //!FEATURE_CORECLR
|
|
info.AddValue("InvalidCultureId", invalidCultureId, typeof(Nullable<int>));
|
|
info.AddValue("InvalidCultureName", m_invalidCultureName, typeof(string));
|
|
}
|
|
#if !FEATURE_CORECLR
|
|
public virtual Nullable<int> InvalidCultureId
|
|
{
|
|
get { return m_invalidCultureId; }
|
|
}
|
|
#endif //!FEATURE_CORECLR
|
|
|
|
public virtual string InvalidCultureName
|
|
{
|
|
get { return m_invalidCultureName; }
|
|
}
|
|
|
|
private static String DefaultMessage
|
|
{
|
|
get
|
|
{
|
|
return Environment.GetResourceString("Argument_CultureNotSupported");
|
|
}
|
|
}
|
|
|
|
private String FormatedInvalidCultureId
|
|
{
|
|
get
|
|
{
|
|
#if !FEATURE_CORECLR
|
|
if (InvalidCultureId != null)
|
|
{
|
|
return String.Format(CultureInfo.InvariantCulture,
|
|
"{0} (0x{0:x4})", (int)InvalidCultureId);
|
|
}
|
|
#endif //!FEATURE_CORECLR
|
|
return InvalidCultureName;
|
|
}
|
|
}
|
|
|
|
public override String Message
|
|
{
|
|
get
|
|
{
|
|
String s = base.Message;
|
|
if (
|
|
#if !FEATURE_CORECLR
|
|
m_invalidCultureId != null ||
|
|
#endif //!FEATURE_CORECLR
|
|
m_invalidCultureName != null)
|
|
{
|
|
String valueMessage = Environment.GetResourceString("Argument_CultureInvalidIdentifier", FormatedInvalidCultureId);
|
|
if (s == null)
|
|
return valueMessage;
|
|
return s + Environment.NewLine + valueMessage;
|
|
}
|
|
return s;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|