Tag: 单身人士

使用单个对象上的reflection调用方法

所以我有以下内容: public class Singleton { private Singleton(){} public static readonly Singleton instance = new Singleton(); public string DoSomething(){ … } public string DoSomethingElse(){ … } } 使用reflection如何调用DoSomething方法? 我问的原因是因为我将方法名称存储在XML中并动态创建UI。 例如,我正在动态创建一个按钮并告诉它在单击按钮时通过reflection调用哪种方法。 在某些情况下,它将是DoSomething,或者在其他情况下,它将是DoSomethingElse。

处理单例实例(C#)

如果单例实现IDisposable,那么处理和重新创建实例的正确方法是什么? 一种方法是保持_disposed标志并在Instance属性中检查它,但我不确定这是否是正确的方法。 一个简单的例子: public sealed class Singleton: IDisposable { private static Singleton _instance; private object _lock; private UnmanagedResource _unmanaged; private bool _disposed; private Singleton() { _unmanaged = new UnmanagedResource(); _disposed = false; _lock = new object(); } public UnmanagedResource Unmanaged { get { return _unmanaged; } } public static Singleton Instance { get { if […]

在C#中实现单例可inheritance类

我发现在C#中你可以实现一个Singleton类,如下所示: class Singleton { private static Singleton _instance; public static Singleton Instance { get { return _instance ?? (_instance = new Singleton()); } } protected Singleton() { } } 适用于Singleton类型的实例,即: var a = Singleton.Instance; var b = Singleton.Instance; Console.WriteLine(ReferenceEquals(a, b)); //Prints True. 但是,如果我想要Singleton的派生类也遵循Singleton模式,即: class A:Singleton { … } A a = A.Instance; 在这种情况下, Singleton类访问静态成员Instance并创建一个Singleton实例,这不是目标。 此外,此解决方案还存在两个主要问题: […]

使用静态构造函数在C#中创建单例

我一直在看c#中创建静态构造函数的文章: http://csharpindepth.com/Articles/General/Singleton.aspx 现在,他没有提到的一个选项是使用一个简单的静态构造函数。 做以下事情有什么问题吗? 如果它工作,它似乎比他复杂的解决方案恕我直言。 public static class ServiceFactory { static ServiceFactory() { container = new Foo(); } static Foo container; public static Instance { get { return container; } } } 我问的原因是我正在进行代码审查,并希望保持原样,如果没问题的话。