这是这个问题的细微差异:Possible to use a singleton with a non-default constructor in C#?可能在C#中使用带有非默认构造函数的单例吗?
我有一个类,它的构造函数需要参数。我想做这个单例,使得参数在初始化单例时被采用,因此在每次实例被检索时不需要被传递。
我的解决方案(这不是优雅),这是一个CreateInstance()
静态方法,它接受参数并构造单例实例。然后我会有另一个静态方法GetInstance()
这将无参数来获得单例实例。在代码中,我需要在调用GetInstance之前确保逻辑调用CreateInstance
。但是,我无法在编译时强制执行此操作。不过,如果在CreateInstance
之前调用它,则可以在运行时检查GetInstance
中的异常。
是否有无论如何我可以通过编译时执行来实现这种行为?或者至少,有没有更好的方法来做同样的事情?
@ user691226你应该为你如何做到这一点已经,我可能有一些指针。 – msarchet 2011-04-04 14:22:39