// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. namespace System.Data.Entity { using System.Globalization; using System.Reflection; using System.Resources; /// /// Locates localized resources for an assembly /// public class AssemblyResourceLookup { private readonly Assembly _assembly; private readonly ResourceManager _resourceManager; /// /// Initializes a new instance of the AssemblyResourceLookup class. /// /// Assembly that resources belong to public AssemblyResourceLookup(Assembly assembly) : this(assembly, ResourceUtilities.BuildResourceManager(assembly)) { } /// /// Initializes a new instance of the AssemblyResourceLookup class. /// /// Assembly that resources belong to /// Resource table to lookup strings in public AssemblyResourceLookup(Assembly assembly, string resourceTable) : this(assembly, new ResourceManager(resourceTable, assembly)) { } private AssemblyResourceLookup(Assembly assembly, ResourceManager manager) { ExceptionHelpers.CheckArgumentNotNull(assembly, "assembly"); _assembly = assembly; _resourceManager = manager; } /// /// Finds a specific string resource /// /// Key of the resource to be located /// The localized resource value public string LookupString(string resourceKey) { var messageFromResources = _resourceManager.GetString(resourceKey); if (messageFromResources == null) { throw new ArgumentException( string.Format( CultureInfo.InvariantCulture, "No string with key {0} was found in resource table {1} in assembly {2}.", resourceKey, _resourceManager.BaseName, _assembly.FullName)); } return messageFromResources; } } }