.NET中的ResourceManager是单例的吗?

.NET中的ResourceManager是单例的吗?,.net,.net,NET中的ResourceManager是单例吗?从它的使用情况来看,我会说不是。我认为它更可能是一个工厂类或类似的类 因为用法是这样的: Resources.SomeResourceYouMade; Resources.Instance.SomeResourceYouMade; 如果是单例,则必须先访问实例,然后访问资源,因此看起来更像这样: Resources.SomeResourceYouMade; Resources.Instance.SomeResourceYouMade; 此

NET中的ResourceManager是单例吗?

从它的使用情况来看,我会说不是。我认为它更可能是一个工厂类或类似的类

因为用法是这样的:

Resources.SomeResourceYouMade;
Resources.Instance.SomeResourceYouMade;
如果是单例,则必须先访问实例,然后访问资源,因此看起来更像这样:

Resources.SomeResourceYouMade;
Resources.Instance.SomeResourceYouMade;

此外,这里还有一些关于实例化资源管理器的信息,甚至来自不同的程序集().

如果在处理资源文件时查看设计器生成的代码,可以看到每个生成的资源属性都访问一个内部静态属性,该属性将创建一个
ResourceManager
实例(如果尚未创建),然后重用该实例。从这个角度来看,我觉得它是单例的(即使具体的单例实现可能不是最好的)

示例(使用名为MyResourceFile.resx的资源文件,以及名为SomeStringResource的字符串资源):


正如您在
ResourceManager
属性中看到的,它检查
resourceMan
是否为
null
,仅当它为空时才创建新的
ResourceManager
。后续调用将使用当时已创建的
ResourceManager
实例。这意味着只会创建一个实例,然后再重新使用,这就是Singleton模式的要点。

@Jack London:请返回并接受您之前提出的问题的答案。鼓励我们回答您的问题。不一定,有些单例将具有静态属性和方法,这些属性和方法将委托给私有实例,以摆脱引用链中丑陋的
实例
SomeResource{get{return}\u instance.SomeResourceImpl;}}