| File: System.Design.cs | Web Access |
| Project: src\msbuild\src\Tasks\Microsoft.Build.Tasks.csproj (Microsoft.Build.Tasks.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Resources; using System.Threading; #nullable disable namespace Microsoft.Build.Tasks { [AttributeUsage(AttributeTargets.All)] internal sealed class SRDescriptionAttribute : DescriptionAttribute { private bool _replaced = false; /// <summary> /// Constructs a new sys description. /// </summary> /// <param name='description'> /// description text. /// </param> public SRDescriptionAttribute(string description) : base(description) { } /// <summary> /// Retrieves the description text. /// </summary> /// <returns> /// description /// </returns> public override string Description { get { if (!_replaced) { _replaced = true; DescriptionValue = SR.GetString(base.Description); } return base.Description; } } } [AttributeUsage(AttributeTargets.All)] internal sealed class SRCategoryAttribute : CategoryAttribute { public SRCategoryAttribute(string category) : base(category) { } protected override string GetLocalizedString(string value) { return SR.GetString(value); } } /// <summary> /// AutoGenerated resource class. Usage: /// /// string s = SR.GetString(SR.MyIdenfitier); /// </summary> internal sealed class SR { internal const string ClassDocComment = "ClassDocComment"; internal const string ClassComments1 = "ClassComments1"; internal const string ClassComments3 = "ClassComments3"; internal const string StringPropertyComment = "StringPropertyComment"; internal const string StringPropertyTruncatedComment = "StringPropertyTruncatedComment"; internal const string NonStringPropertyComment = "NonStringPropertyComment"; internal const string NonStringPropertyDetailedComment = "NonStringPropertyDetailedComment"; internal const string CulturePropertyComment1 = "CulturePropertyComment1"; internal const string CulturePropertyComment2 = "CulturePropertyComment2"; internal const string ResMgrPropertyComment = "ResMgrPropertyComment"; internal const string MismatchedResourceName = "MismatchedResourceName"; internal const string InvalidIdentifier = "InvalidIdentifier"; private static SR s_loader = null; private MainAssemblyFallbackResourceManager _resources; /// <summary> /// The containing assembly is set to lookup resources for the neutral language in satellite assemblies, not in the main assembly. /// System.Design resources are not meant to be translated, so the ResourceManager should not look for satellite assemblies. /// This ResourceManager forces resource lookup to be constrained to the current assembly and not look for satellites. /// </summary> private class MainAssemblyFallbackResourceManager : ResourceManager { public MainAssemblyFallbackResourceManager(string baseName, Assembly assembly) : base(baseName, assembly) { this.FallbackLocation = UltimateResourceFallbackLocation.MainAssembly; } } internal SR() { _resources = new MainAssemblyFallbackResourceManager("System.Design", this.GetType().Assembly); } private static SR GetLoader() { if (s_loader == null) { SR sr = new SR(); Interlocked.CompareExchange(ref s_loader, sr, null); } return s_loader; } private static CultureInfo Culture { get { return null/*use ResourceManager default, CultureInfo.CurrentUICulture*/; } } public static ResourceManager Resources { get { return GetLoader()._resources; } } public static string GetString(string name, params object[] args) { SR sys = GetLoader(); if (sys == null) { return null; } string res = sys._resources.GetString(name, SR.Culture); if (args?.Length > 0) { for (int i = 0; i < args.Length; i++) { String value = args[i] as String; if (value?.Length > 1024) { args[i] = value.Substring(0, 1024 - 3) + "..."; } } return String.Format(CultureInfo.CurrentCulture, res, args); } else { return res; } } public static string GetString(string name) { SR sys = GetLoader(); if (sys == null) { return null; } return sys._resources.GetString(name, SR.Culture); } public static string GetString(string name, out bool usedFallback) { // always false for this version of gensr usedFallback = false; return GetString(name); } public static object GetObject(string name) { SR sys = GetLoader(); if (sys == null) { return null; } return sys._resources.GetObject(name, SR.Culture); } } }