C# NHibernate,对象引用(配置)未设置为对象的实例

C# NHibernate,对象引用(配置)未设置为对象的实例,c#,nhibernate,C#,Nhibernate,我有一个从其他方法调用的方法。此方法创建配置对象和ISessionFactory: private static ISessionFactory sessionFactory() { Configuration myConfig = null; ISessionFactory mySessFac = null; try { myConfig = new Configuration();

我有一个从其他方法调用的方法。此方法创建配置对象和ISessionFactory:

private static ISessionFactory sessionFactory()
    {

        Configuration myConfig = null;
        ISessionFactory mySessFac = null;
        try
        {
            myConfig = new Configuration();
            if (myConfig != null)
            {
                myConfig.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "hibernate.cfg.xml"));
                mySessFac = myConfig.BuildSessionFactory();
            }
        }
        catch (Exception e)
        {
            throw;
        }

        return mySessFac;

    }
问题是,我在
myConfig.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“hibernate.cfg.xml”))处得到一个错误

错误是:

对象引用未设置为对象的实例

即使这是一个直接的错误,我也很难解决它。 以下是使用上述方法的方法:

 public static IList<Course> RetrieveAllCourses()
    {
        IList<Course> cList = null;
        try
        {
            using (ISession mySess = sessionFactory().OpenSession())
            {
                ICriteria criteria = mySess.CreateCriteria<Course>();
                cList = criteria.List<Course>();
            }
        }
        catch (Exception e)
        {
            throw;
        }
        return cList;
    }
公共静态IList RetrieveAllCourses()
{
IList cList=null;
尝试
{
使用(ISession myess=sessionFactory().OpenSession())
{
ICriteria-criteria=myess.CreateCriteria();
cList=criteria.List();
}
}
捕获(例外e)
{
投掷;
}
返回cList;
}
Myhibernate.cfg.xml设置为嵌入式资源

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=Mnemonics;User ID=Mnmncs;Password=mnmncs;Initial Catalog=database-name;Integrated Security=true</property>
    <property name="show_sql">true</property>
    <mapping assembly="RManageSystemService"/>
  </session-factory>
</hibernate-configuration>

NHibernate.Connection.DriverConnectionProvider
NHibernate.dial.MsSql2012Dialect
NHibernate.Driver.SqlClientDriver
数据源=助记符;用户ID=跨国公司;密码=跨国公司;初始目录=数据库名称;集成安全性=真
真的
映射文件也设置为嵌入式资源:

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="RManageSystemService"
                   namespace="RManageSystemService.orm_rman_systm">
  <class name="Course" table="dbo.Courses" lazy="false">
    <id name="CCode" column="ccode">
      <generator class="identity"/>
    </id>
    <property name="CName" column="cname"/>
    <property name="Credits" column="credits"/>
  </class>
</hibernate-mapping>


那么,我的代码有什么问题?我希望能得到一些帮助

我认为问题可能出在路径或XML结构上,但我没有使用NHibernate框架的经验,因此我不确定Configure()方法的功能。

问题是一个映射文件重复了属性映射。该错误在某种程度上被方法sessionFactory()中的try-catch语句覆盖,该语句只返回一个对象错误