我一直在使用S#ARP,并已更新了 Generate 方法IN AutoPersistenceModelGenerator 使用流利的NHIBERNATE 1.1。我还将其汇编名称从myproject.data更改为myproject.infrastructure,我不确定是哪个引起了问题:

    public AutoPersistenceModel Generate()
    {
        return AutoMap.Assemblies(new myProjectMappingConfiguration(),
                                  typeof (MyClass).Assembly)
            .Conventions.Setup(GetConventions())
            .IgnoreBase<Entity>()
            .IgnoreBase(typeof (EntityWithTypedId<>))
            .UseOverridesFromAssemblyOf<AutoPersistenceModelGenerator>();
    }

在温莎城堡注册包含上述方法的组件...

        container.Register(
            AllTypes.Pick()
            .FromAssemblyNamed("MyProject.Infrastructure")
            .WithService.FirstNonGenericCoreInterface("MyProject.Core"));

...它引发了这个例外:

方法“生成” type'myproject.infrastructure.nhibernatemaps.autopersistencemodelgenerator'来自汇编'myproject.infrastructure,版本= 1.0.0.0,culture =中性,publicKeyToken = null'没有实施。

我已经完全清理了该项目并重建了该项目,但是错误一直在发生。

我不知道这是否有所不同,但是上述方法实际上是在Global.asax中直接调用的:

    private void InitializeNHibernateSession()
    {
        var cfg = NHibernateSession.Init(
            webSessionStorage,
            new string[] { Server.MapPath("~/bin/MyProject.Infrastructure.dll") },
            new AutoPersistenceModelGenerator().Generate(),
            Server.MapPath("~/NHibernate.config"));
     }

我已经尝试删除IOC注册,但是在此方法上出现了相同的错误:

    public void Initialize(Action initMethod)
    {
        if (!this.NHibernateSessionIsLoaded)
        {
            lock (syncLock)
            {
                if (!this.NHibernateSessionIsLoaded)
                {
                    initMethod();
                    this.NHibernateSessionIsLoaded = true;
                }
            }
        }
    }

更新

我重新创建了项目,并再次不愿进行相同的过程 - 当我将流利的NHibernate从1.0更新为1.1时,错误似乎会发生。有什么想法吗?

有帮助吗?

解决方案

我相信这是由S#ARP架构组件的一部分引起的,引用了旧的Fluent Nhibernate版本。

我将S#ARP组件更新为1.6(现在使用FNH 1.1),现在可以使用。

其他提示

我遇到了同一问题,但尚未准备好更新我的夏尔帕克版本,而且我正在使用2.0.0.0版本的fluentnhibernate。您可以在app.config或web.config中使用汇编绑定重定向来解决此问题。像这样:

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="FluentNhibernate" publicKeyToken="8aa435e3cb308880" culture="neutral"/>
            <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="2.0.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top