CultureAndRegionInfoBuilder.Register Method
Updated: December 2010
Persists the current CultureAndRegionInfoBuilder object as a custom culture on the local computer and makes that culture available to applications. Requires administrative privileges.
Assembly: sysglobl (in sysglobl.dll)
| Exception | Condition |
|---|---|
| InvalidOperationException |
The custom culture is already registered. -or- The current CultureAndRegionInfoBuilder object has a property that must be set before the culture can be registered. All cultures, neutral or specific, must have TextInfo and CompareInfo set. Specific cultures must also have NumberFormat, GregorianDateTimeFormat, and AvailableCalendars set. This method also throws InvalidOperationException if the following properties are not defined: |
| ArgumentOutOfRangeException |
A CultureAndRegionInfoBuilder object property value exceeds its maximum length or value. |
| UnauthorizedAccessException |
User does not have administrative privileges. |
The Register method stores a custom culture as a file on the local computer in the Globalization subdirectory of the directory returned by the Win32 GetWindowsDirectory function. This process is called registering the custom culture. After the custom culture is registered, a new custom culture can be created by specifying the culture name in a CultureInfo() constructor or when calling the CultureInfo.CreateSpecificCulture method.
The following code example demonstrates the Register method.
// This example demonstrates the System.Globalization.Culture- // AndRegionInfoBuilder Register method. // Compile this code example with a reference to sysglobl.dll. using System; using System.Globalization; class Sample { public static void Main() { CultureAndRegionInfoBuilder cib = null; try { // Create a CultureAndRegionInfoBuilder object named "x-en-US-sample". Console.WriteLine("Create and explore the CultureAndRegionInfoBuilder...\n"); cib = new CultureAndRegionInfoBuilder( "x-en-US-sample", CultureAndRegionModifiers.None); // Populate the new CultureAndRegionInfoBuilder object with culture information. CultureInfo ci = new CultureInfo("en-US"); cib.LoadDataFromCultureInfo(ci); // Populate the new CultureAndRegionInfoBuilder object with region information. RegionInfo ri = new RegionInfo("US"); cib.LoadDataFromRegionInfo(ri); // Display some of the properties of the CultureAndRegionInfoBuilder object. Console.WriteLine("CultureName:. . . . . . . . . . {0}", cib.CultureName); Console.WriteLine("CultureEnglishName: . . . . . . {0}", cib.CultureEnglishName); Console.WriteLine("CultureNativeName:. . . . . . . {0}", cib.CultureNativeName); Console.WriteLine("GeoId:. . . . . . . . . . . . . {0}", cib.GeoId); Console.WriteLine("IsMetric: . . . . . . . . . . . {0}", cib.IsMetric); Console.WriteLine("ISOCurrencySymbol:. . . . . . . {0}", cib.ISOCurrencySymbol); Console.WriteLine("RegionEnglishName:. . . . . . . {0}", cib.RegionEnglishName); Console.WriteLine("RegionName: . . . . . . . . . . {0}", cib.RegionName); Console.WriteLine("RegionNativeName: . . . . . . . {0}", cib.RegionNativeName); Console.WriteLine("ThreeLetterISOLanguageName: . . {0}", cib.ThreeLetterISOLanguageName); Console.WriteLine("ThreeLetterISORegionName: . . . {0}", cib.ThreeLetterISORegionName); Console.WriteLine("ThreeLetterWindowsLanguageName: {0}", cib.ThreeLetterWindowsLanguageName); Console.WriteLine("ThreeLetterWindowsRegionName: . {0}", cib.ThreeLetterWindowsRegionName); Console.WriteLine("TwoLetterISOLanguageName: . . . {0}", cib.TwoLetterISOLanguageName); Console.WriteLine("TwoLetterISORegionName: . . . . {0}", cib.TwoLetterISORegionName); Console.WriteLine(); // Register the custom culture. Console.WriteLine("Register the custom culture..."); cib.Register(); // Display some of the properties of the custom culture. Console.WriteLine("Create and explore the custom culture...\n"); ci = new CultureInfo("x-en-US-sample"); Console.WriteLine("Name: . . . . . . . . . . . . . {0}", ci.Name); Console.WriteLine("EnglishName:. . . . . . . . . . {0}", ci.EnglishName); Console.WriteLine("NativeName: . . . . . . . . . . {0}", ci.NativeName); Console.WriteLine("TwoLetterISOLanguageName: . . . {0}", ci.TwoLetterISOLanguageName); Console.WriteLine("ThreeLetterISOLanguageName: . . {0}", ci.ThreeLetterISOLanguageName); Console.WriteLine("ThreeLetterWindowsLanguageName: {0}", ci.ThreeLetterWindowsLanguageName); Console.WriteLine("\nNote:\n" + "Use the example in the Unregister method topic to remove the custom culture."); } catch (Exception e) { Console.WriteLine(e); } } } /* This code example produces the following results: Create and explore the CultureAndRegionInfoBuilder... CultureName:. . . . . . . . . . x-en-US-sample CultureEnglishName: . . . . . . English (United States) CultureNativeName:. . . . . . . English (United States) GeoId:. . . . . . . . . . . . . 244 IsMetric: . . . . . . . . . . . False ISOCurrencySymbol:. . . . . . . USD RegionEnglishName:. . . . . . . United States RegionName: . . . . . . . . . . x-en-US-sample RegionNativeName: . . . . . . . United States ThreeLetterISOLanguageName: . . eng ThreeLetterISORegionName: . . . USA ThreeLetterWindowsLanguageName: ENU ThreeLetterWindowsRegionName: . USA TwoLetterISOLanguageName: . . . en TwoLetterISORegionName: . . . . US Register the custom culture... Create and explore the custom culture... Name: . . . . . . . . . . . . . x-en-US-sample EnglishName:. . . . . . . . . . English (United States) NativeName: . . . . . . . . . . English (United States) TwoLetterISOLanguageName: . . . en ThreeLetterISOLanguageName: . . eng ThreeLetterWindowsLanguageName: ENU Note: Use the example in the Unregister method topic to remove the custom culture. */
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.