我有一个项目,其中包含多个资源(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>
这是设计器代码 - 这是由 codedom 生成的。
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;
}
}
...
}