У меня есть проект, который имеет несколько файлов Resource (resx) вместе с сопровождающими файлами .designer.cs. Каждый из этих классов имеет открытое статическое свойство типа System.Resources.ResourceManager .
То, что я не могу понять, это как правильно настроить конфигурацию для единства, чтобы я мог разрешить ее и выполнить. Очевидно, что приведенный ниже код не будет работать - поскольку он не позволит мне зарегистрировать объект таким образом.
public static string GetStringValue(name, tokenName)
{
using (IUnityContainer container = new UnityContainer())
{
container.LoadConfiguration("ResourceManagers");
var resolvedManager = container.Resolve<ResourceManager>(name);
return resolvedManager.GetString(tokenName);
}
}
И с учетом следующей конфигурации ...
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="Web" />
<container name="ResourceManagers">
<register name="Manager1" mapTo="Web.Manager1Strings.ResourceManager" type="System.Resources.ResourceManager" />
</container>
</unity>
вот код конструктора - он генерируется кодетом.
public class Manager1Strings
{
...
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Web.Resources.Manager1.Manager1Strings", typeof(Manager1Strings).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
...
}