我将hibernate.cfg.xml congif文件放在PersistenceManager项目中,如图所示。
我需要以编程方式在此getter中设置此配置文件的物理路径以配置NHibernate(带有cfg.Configure的行):
public class SessionService
{
private static ISessionFactory _sessionFactory = null;
public static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
{
Configuration cfg = new Configuration();
string fullPath = (new SessionService()).GetType().Assembly.Location;
cfg.Configure(@"the working path to hibernate.cfg.xml");
//I will Add Mapping directives here
_sessionFactory = cfg.BuildSessionFactory();
}
return _sessionFactory;
}
}
}
如何通过输入字符串“hibernate.cfg.xml”并让C#生成其余的物理路径来安全地完成它?
答案 0 :(得分:1)
在文件的属性窗口中,将“复制到输出目录”设置为“如果更新则复制”。然后应该通过Configure
方法找到它而不添加路径(只是文件名)。
编辑:要在运行时获取完整路径,可以尝试以下操作:
cfg.Configure(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"hibernate.cfg.xml"));