using System;
using System.Reflection;
using NHibernate;
namespace PetShop.DAO{
sealed class Sessions{
public static ISessionFactory PetShop;
public static ISessionFactory PetShopOrders;
static Sessions(){
NHibernate.Cfg.Configuration petShopCfg = new NHibernate.Cfg.Configuration();
petShopCfg.Configure(typeof(Sessions).Assembly, "PetShop.cfg.xml");
PetShop = petShopCfg.BuildSessionFactory();
petShopCfg.Configure(typeof(Sessions).Assembly, "PetShopOrders.cfg.xml");
PetShopOrders = petShopCfg.BuildSessionFactory();
}
}
}
using System.Reflection;
using NHibernate;
namespace PetShop.DAO{
sealed class Sessions{
public static ISessionFactory PetShop;
public static ISessionFactory PetShopOrders;
static Sessions(){
NHibernate.Cfg.Configuration petShopCfg = new NHibernate.Cfg.Configuration();
petShopCfg.Configure(typeof(Sessions).Assembly, "PetShop.cfg.xml");
PetShop = petShopCfg.BuildSessionFactory();
petShopCfg.Configure(typeof(Sessions).Assembly, "PetShopOrders.cfg.xml");
PetShopOrders = petShopCfg.BuildSessionFactory();
}
}
}
他使用了一个静态构造函数。
所以顺便讲一下构造函数
构造函数是一种特殊的方法,调用它来初始化对象。构造函数的名称总是和包含它的类名称相同,并且从不返回值。
构造函数分为两类:实例构造函数和静态构造函数。
实例构造函数用来初始化特定的对象实例。
静态构造函数也称类构造函数,在第一次使用类之前调用。
如上代码,展示的是一种单件模式的实现方法。