C# 如何将数据服务绑定到Ninject中的另一个服务类?
我正在为我的网站创建一个视图,其中显示产品的所有信息。我想创建一个“Details”服务类,它处理我的大部分查询。 我将会话绑定到GeneralWebApplicationDataInjectModule中的数据:C# 如何将数据服务绑定到Ninject中的另一个服务类?,c#,nhibernate,lambda,ninject.web.mvc,C#,Nhibernate,Lambda,Ninject.web.mvc,我正在为我的网站创建一个视图,其中显示产品的所有信息。我想创建一个“Details”服务类,它处理我的大部分查询。 我将会话绑定到GeneralWebApplicationDataInjectModule中的数据: Bind<IContentService>().To<ContentService>().InRequestScope(); Bind<ISession>() .ToMethod(
Bind<IContentService>().To<ContentService>().InRequestScope();
Bind<ISession>()
.ToMethod(
context =>
context.Kernel.Get<IMasterSessionSource>()
.ExposeConfiguration()
.BuildSessionFactory()
.OpenSession()
)
.WhenInjectedInto<IContentService>()
.InRequestScope();
因此,我创建了一个新的服务类,试图使用ContentService获取详细信息:
public class DetailsService
{
private static IContentService _contentService;
public DetailsService(IContentService contentService)
{
_contentService = contentService;
}
public static IEnumerable<Programs> ProgramsFind()
{
var results =
_contentService
.Programs
.Where(
d => d.TypeId >= 16 || d.TypeId <= 18);
return results;
}
是的,这就是答案
public class ProgramController : Controller
{
private static IContentService _contentService;
public ProgramController (IContentService contentService)
{
_contentService = contentService;
}
public ActionResult Details(string item)
{
var ProgramDetails = DetailsService.ProgramsFind();
//this is where i want to use the service class to pull data in DetailsService.
var model = new DetailPageViewModel
{
ProgramTables = GetUpComingCourses(),
};
return View("../Shared/DetailView", model);
}
public class DetailsService
{
private static IContentService _contentService;
public DetailsService(IContentService contentService)
{
_contentService = contentService;
}
public static IEnumerable<Programs> ProgramsFind()
{
var results =
_contentService
.Programs
.Where(
d => d.TypeId >= 16 || d.TypeId <= 18);
return results;
}
Bind<IContentService>().To<DetailsService>().InRequestScope();
private static IContentService _contentService;
// new
private static IDetailsService _detailsService;
public MobileController(IContentService contentService, IDetailsService detailsService)
{
_contentService = contentService;
//new
_detailsService = detailsService;
}