Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LocalSessionFactoryObject-MappingResources-hbm文件的路径_C#_Nhibernate_Spring.net_Mapping Resources - Fatal编程技术网

C# LocalSessionFactoryObject-MappingResources-hbm文件的路径

C# LocalSessionFactoryObject-MappingResources-hbm文件的路径,c#,nhibernate,spring.net,mapping-resources,C#,Nhibernate,Spring.net,Mapping Resources,项目结构为: 现在我尝试创建一个beanNHibernateSessionFactoryas: EMSApplication.Domain/EMSApplication.hbm.xml 但我收到了错误信息: 创建上下文“spring.root”时出错:文件[C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\EMSApplication.Domain\EMSApplication.hbm.xml]无法解析为本

项目结构为:

现在我尝试创建一个bean
NHibernateSessionFactory
as:


EMSApplication.Domain/EMSApplication.hbm.xml
但我收到了错误信息:

创建上下文“spring.root”时出错:文件[C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\EMSApplication.Domain\EMSApplication.hbm.xml]无法解析为本地文件路径-资源未使用“file:”协议。
现在项目在D驱动器上,我想知道为什么这是指向C驱动器

另外,如何在映射资源中添加指定的hbm文件?此文件设置为“嵌入式资源”

有没有办法在这里指定一个目录来扫描多个hbm文件


任何信息都将对我非常有用。

您没有在资源名称中使用协议标识符(例如
文件://
程序集://
),因此Spring使用默认的文件协议。它试图从web应用程序正在运行的位置(devserver路径)解析hbm文件,而不是从它的文件存储的位置解析,这似乎是您所期望的

要引用网站中的文件,请使用
~
标识网站的根目录,例如
文件://~/EMSApplication.Domain/EMSApplication.hbm.xml
。但请确保复制了该文件,情况可能并非如此,因为您已将其设置为embedded resource(为什么?)

考虑以下改进,它们将使您的生活更加轻松:

  • 将文件夹
    dao
    domain
    NHibernate
    中的代码移动到名为
    your.AssemblyName
    的单独程序集(从web应用程序引用的类库项目)中
  • 会话工厂还支持指定要扫描的映射程序集,因此您不必指定每个文件-请参阅上的文档。在映射程序集列表中指定.AssemblyName:

你的名字
看看吧,它非常适用于你在这里提出的问题