静态构造函数的应用:应用于单件模式
public class SessionFactory
{
private static ISession session = null;
private static ISessionManage sessionManage = null;
static SessionFactory()
{
Init();
}
/// <summary>
/// 获取实现NHibernate.ISession接口的Session实例
/// </summary>
/// <returns>返回实现NHibernate.ISession接口的类实例</returns>
public static ISession GetSession()
{
if (sessionManage == null)
{
Init();
}
session = sessionManage.Get();
if (session == null)
{
session = NHibernateSession.GetNHibernateSession();
sessionManage.Set(session);
}
return session;
}
private static void Init()
{
System.Reflection.Assembly ass = System.Reflection.Assembly.Load(SessionConfigManage.AssemblyName);
sessionManage = (ISessionManage)ass.CreateInstance(SessionConfigManage.SessionSourceItemName);
}
}
反射的应用:
System.Reflection.Assembly ass = System.Reflection.Assembly.Load(SessionConfigManage.AssemblyName);
sessionManage = (ISessionManage)ass.CreateInstance(SessionConfigManage.SessionSourceItemName);