我目前正在通过静态调用(例如)设置会话配置SessionConfiguration.GetSessionConfiguration();上面的方法返回一个已配置的ISessionFactory:public static ISessionFactory GetSessionConfiguration(){ return Fluently.Configure() .Database(MsSqlConfiguration .MsSql2005 .ConnectionString(/*...*/) .ShowSql() .CurrentSessionContext<WebSessionContext>()) .Mappings(/*etc*/) .BuildSessionFactory();}我正在寻找的部分是“ CurrentSessionContext ”。我希望能够根据调用它的应用程序进行设置。在大多数情况下,可以通过网络应用访问该库,因此上述方法可以正常工作。但是,最近我需要在控制台应用程序中使用此层,在该应用程序中,CallSessionContext似乎更合适。是否可以传递ICurrentSessionContext以便在原处使用?我已经尝试了以下方法:public static ISessionFactory GetSessionConfiguration<ICurrentSessionContext>要么public static ISessionFactory GetSessionConfiguration<TSessionContext>但还没有运气非常感谢您的协助! (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 使用“ where约束”是可能的。即:ISessionFactory GetSessionConfiguration<T> where T : ICurrentSessionContext调用时,这使您可以执行以下操作:SessionConfiguration.GetSessionConfiguration<CallSessionContext>(); (adsbygoogle = window.adsbygoogle || []).push({}); 10-08 02:39