gpt4 book ai didi

c# - xxx 类型的方法 'Generate' 没有实现 - S#arp - 已更新

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:47 24 4
gpt4 key购买 nike

我一直在使用 S#arp 并更新了 AutoPersistenceModelGenerator 中的 Generate 方法以使用 Fluent 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>();
}

在 CaSTLe Windsor 注册包含上述方法的程序集时...

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

...它抛出这个异常:

Method 'Generate' in type 'MyProject.Infrastructure.NHibernateMaps.AutoPersistenceModelGenerator' from assembly 'MyProject.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

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

我不知道这是否有所不同,但上面的方法实际上是在 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;
}
}
}
}

更新

我重新创建了我的项目并再次取消了相同的过程 - 当我将 Fluent NHibernate 从 1.0 更新到 1.1 时似乎发生了错误。有什么想法吗?

最佳答案

我相信这是由引用旧的 Fluent NHibernate 版本的 S#arp 架构程序集的一部分引起的。

我将 S#arp 程序集更新到 1.6(现在使用 FNH 1.1)并且它现在可以工作了。

关于c# - xxx 类型的方法 'Generate' 没有实现 - S#arp - 已更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3519947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com