这段代码中的IEventRepository是什么? Resolver.resolve()做什么?

时间:2012-02-23 12:07:30

标签: c# javascript sql json fullcalendar

public JsonResult GetEvents(double start, double end)
{
    var userName = Session["UserName"] as string;
    if(string.IsNullOrEmpty(userName))
    {
        return null;
    }
    var fromDate = ConvertFromUnixTimestamp(start);
    var toDate = ConvertFromUnixTimestamp(end);
    var rep = Resolver.Resolve<IEventRepository>();
    var events = rep.ListEventsForUser(userName,fromDate,toDate);
    var eventList = from e in events
                    select new {
                                id = e.Id,
                                title = e.Title,
                                start = e.FromDate.ToString("s"),
                                end = e.ToDate.ToString("s"),
                                allDay = false
                            };
    var rows = eventList.ToArray();
    return Json(rows,JsonRequestBehavior.AllowGet);           
}

我从this blog获得了这段代码,并试图理解它。我想要做的是使用fullcalendar代码从数据库中检索事件,并允许用户使用C#和Razor将它们添加到数据库。我认为这个代码接近我想要的,因为它正在动态创建JSON对象,但我需要调整它以使用SQL和C#。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

它从依赖注入框架的内核/解析器中获取IEventRepository的实例化。在代码/配置的其他地方,当请求类型为IEventRepository的对象时,将有解析器关于应该实例化哪种对象的指令。在没有看到该代码的情况下,除了满足接口IEventRepository之外,任何人都在猜测从该调用返回的内容。可能,只有一两个类实现IEventRepository。找到他们!

如果您想阅读DI,我喜欢ninject docs,但这个特殊代码看起来不像ninject。