如何以编程方式设置此xml文件的物理路径?

时间:2011-07-16 09:39:30

标签: c# .net xml path

我将hibernate.cfg.xml congif文件放在PersistenceManager项目中,如图所示。

enter image description here

我需要以编程方式在此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#生成其余的物理路径来安全地完成它?

1 个答案:

答案 0 :(得分:1)

在文件的属性窗口中,将“复制到输出目录”设置为“如果更新则复制”。然后应该通过Configure方法找到它而不添加路径(只是文件名)。

编辑:要在运行时获取完整路径,可以尝试以下操作:

cfg.Configure(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"hibernate.cfg.xml"));