////////////////////////////////////////////////////////////////////////
        //
        //  RegionInfo Constructors
        //
        ////////////////////////////////////////////////////////////////////////


        public RegionInfo(String name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (name.Length == 0)
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_InvalidRegionName", name), "name");
            }
            this.m_name = name.ToUpper(CultureInfo.InvariantCulture);

            m_cultureId = 0;

            //
            // First try it as an entire culture. We must have user override as true here so
            // that we can pick up custom cultures *before* built-in ones (if they want to
            // prefer built-in cultures they will pass "us" instead of "en-US").
            //
            this.m_cultureTableRecord = CultureTableRecord.GetCultureTableRecordForRegion(name, true);

            if (this.m_cultureTableRecord.IsNeutralCulture)
            {
                // Not supposed to be neutral
                throw new ArgumentException(Environment.GetResourceString("Argument_InvalidNeutralRegionName", name), "name");
            }
        }
 private void OnDeserialized(StreamingContext ctx)
 {
     if (m_name == null)
     {
         BCLDebug.Assert(m_dataItem >= 0, "[RegionInfo.OnDeserialized] null name and invalid dataItem");
         m_cultureTableRecord = CultureTableRecord.GetCultureTableRecord(CultureTableRecord.IdFromEverettRegionInfoDataItem(m_dataItem), true);
         m_name = m_cultureTableRecord.SREGIONNAME;
     }
     else
     {
         if (m_cultureId != 0)
         {
             m_cultureTableRecord = CultureTableRecord.GetCultureTableRecord(m_cultureId, true);
         }
         else
         {
             m_cultureTableRecord = CultureTableRecord.GetCultureTableRecordForRegion(m_name, true);
         }
     }
 }