C# FluentNHibernate重写:使用非泛型版本的Assembly的重写

C# FluentNHibernate重写:使用非泛型版本的Assembly的重写,c#,generics,fluent-nhibernate,overriding,automapping,C#,Generics,Fluent Nhibernate,Overriding,Automapping,我有一个从通用实现继承的存储库类: public namespace RepositoryImplementation { public class PersonRepository : Web.Generics.GenericNHibernateRepository<Person> } 问题是:UseOverridesFromAssemblyOf是一种通用方法,我不能这样做: .UseOverridesFromAssemblyOf<PersonMappingOver

我有一个从通用实现继承的存储库类:

public namespace RepositoryImplementation {
    public class PersonRepository : Web.Generics.GenericNHibernateRepository<Person>
}
问题是:
UseOverridesFromAssemblyOf
是一种通用方法,我不能这样做:

.UseOverridesFromAssemblyOf<PersonMappingOverride>();
.UseOverridesFromAssemblyOf();
因为这会导致循环引用。我不希望通用存储库知道存储库或映射覆盖类,因为它们因项目而异

我看到了另一种解决方案:在GenericNHibernateRepository类中,我可以执行此操作。GetType()并获取存储库实现类型(例如:PersonRepository)。但是,我无法调用
UseOverridesFromAssemblyOf()
传递类型

在FluentNHibernate中是否有其他配置覆盖的方法?如果不是,我如何调用
UseOverridesFromAssemblyOf
,而不使通用存储库依赖于存储库实现或映射覆盖类

(来源:)

以下是我的做法(来源:上)

AutoMap.AssemblyOf<Person>()
  .Where(type => type.Namespace == "Entities")
  .UseOverridesFromAssemblyOf<PersonMappingOverride>();
.UseOverridesFromAssemblyOf<PersonMappingOverride>();
    am1.GetType()
   .GetMethod("UseOverridesFromAssemblyOf")
   .MakeGenericMethod(mappings.GetType())
   .Invoke(am1,null);