JerrySoft

导航

利用泛型和反射实现的一个Singleton

定义Singleton对象

public static class Singleton<T> where T : class
{
    public static readonly T Instance =  typeof(T).InvokeMember
               (
                         
typeof(T).Name,
                           BindingFlags.CreateInstance 
|  BindingFlags.Instance |  BindingFlags.NonPublic,
                           
null
                          
null
                          
null
               
) as T;

    
static Singleton()
    
{
    }


}


使用方法:

public class SingleInstanceClass
{
    
private SingleInstanceClass()
    
{
    }


    
public void DoInstanceMethod()
    
{
        Console.WriteLine(
"DoInstanceMethod");
    }

    
public static void DoStaticMethod()
    
{
        Console.WriteLine(
"DoStaticMethod");
    }


    
public static SingleInstanceClass Instance
    
{
        
get return Singleton<SingleInstanceClass>.Instance; }
    }

}


posted on 2006-12-25 16:37  水-手  阅读(262)  评论(0)    收藏  举报