summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs')
-rw-r--r--src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs b/src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs
new file mode 100644
index 0000000000..e8972c739d
--- /dev/null
+++ b/src/mscorlib/src/System/Resources/NeutralResourcesLanguageAttribute.cs
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+/*============================================================
+**
+**
+**
+**
+**
+** Purpose: Tells the ResourceManager what language your main
+** assembly's resources are written in. The
+** ResourceManager won't try loading a satellite
+** assembly for that culture, which helps perf.
+**
+**
+** NOTE:
+**
+** This custom attribute is no longer implemented in managed code. As part of a perf optimization,
+** it is now read in Module::GetNeutralResourcesLanguage, accessed from ManifestBasedResourceGroveler
+** through an internal runtime call.
+===========================================================*/
+
+namespace System.Resources {
+ using System;
+ using System.Diagnostics.Contracts;
+
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple=false)]
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public sealed class NeutralResourcesLanguageAttribute : Attribute
+ {
+ private String _culture;
+ private UltimateResourceFallbackLocation _fallbackLoc;
+
+ public NeutralResourcesLanguageAttribute(String cultureName)
+ {
+ if (cultureName == null)
+ throw new ArgumentNullException("cultureName");
+ Contract.EndContractBlock();
+
+ _culture = cultureName;
+ _fallbackLoc = UltimateResourceFallbackLocation.MainAssembly;
+ }
+
+ public NeutralResourcesLanguageAttribute(String cultureName, UltimateResourceFallbackLocation location)
+ {
+ if (cultureName == null)
+ throw new ArgumentNullException("cultureName");
+ if (!Enum.IsDefined(typeof(UltimateResourceFallbackLocation), location))
+ throw new ArgumentException(Environment.GetResourceString("Arg_InvalidNeutralResourcesLanguage_FallbackLoc", location));
+ Contract.EndContractBlock();
+
+ _culture = cultureName;
+ _fallbackLoc = location;
+ }
+
+ public String CultureName {
+ get { return _culture; }
+ }
+
+ public UltimateResourceFallbackLocation Location {
+ get { return _fallbackLoc; }
+ }
+ }
+}