XXX类型中的方法“生成”没有实现-S#ARP-更新
-
29-09-2019 - |
题
我一直在使用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>
不隶属于 StackOverflow