34 lines
994 B
C#
34 lines
994 B
C#
|
// Licensed to the .NET Foundation under one or more agreements.
|
||
|
// The .NET Foundation licenses this file to you under the MIT license.
|
||
|
// See the LICENSE file in the project root for more information.
|
||
|
|
||
|
using System.Runtime.CompilerServices;
|
||
|
|
||
|
namespace System.Globalization
|
||
|
{
|
||
|
partial class GlobalizationMode
|
||
|
{
|
||
|
static bool GetGlobalizationInvariantMode ()
|
||
|
{
|
||
|
bool invariantEnabled = GetInvariantSwitchValue ();
|
||
|
if (invariantEnabled)
|
||
|
return true;
|
||
|
|
||
|
LoadICU ();
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
// Keep this in a separate method to avoid loading the native lib in invariant mode
|
||
|
[MethodImplAttribute (MethodImplOptions.NoInlining)]
|
||
|
static void LoadICU ()
|
||
|
{
|
||
|
int res = Interop.Globalization.LoadICU ();
|
||
|
if (res == 0) {
|
||
|
string message = "Couldn't find a valid ICU package installed on the system. " +
|
||
|
"Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.";
|
||
|
Environment.FailFast (message);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|