NInject在函数中使用

问题,今天我在使用Ajax的时候,发现请求到后台没法得到对象。

原来的写法是这样的:

public class Baoming : IHttpHandler
    {
        [Inject]
        public IBLL.IChildrensInfo ChildrensInfoBLL { get; set; }
public void Save()
{
//下面就直接使用 ChildrenInfoBLL,报错未将引用设置到对象的实例
}
}

后来查到了一个方法:

public void Save()
{
IKernel kernel = new StandardKernel();
            kernel.Bind<IBLL.IChildrensInfo>().To<BLL.ChildrensInfo>();
            kernel.Bind<IDAL.IChildrensInfo>().To<DAL.ChildrensInfo>();
            IBLL.IChildrensInfo ChildrensInfoBLL = kernel.Get<IBLL.IChildrensInfo>();
//......
}

好了,问题解决。http://www.cnblogs.com/JustYong/p/5882416.html

时间: 2024-10-25 04:03:26

NInject在函数中使用的相关文章

【读书笔记】Ninject 在MVC5中的使用

从MVC3中就开始接触Ninject这个IOC工具.也一直是MVC Framework系列书籍中推荐的IOC工具,当然还有优秀的Autofac等.性能和使用上面个有千秋.下面先看一下Ninject的使用: 1.添加Ninject.工具-->Nuget程序包管理器-->程序包管理器控制台,输入下面的命令: Install-Package Ninject -version 3.0.1.10 Install-Package Ninject.Web.Common -version 3.0.0.7 In

js函数中参数的传递

先看一道JS的笔试题: var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p); 答案是{name:xiaoming,age24}: 在JavaScript中函数参数默认为引用类型. 在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript

js函数中this的不同含义

1.js函数调用过程中,js线程会进入新的执行环境并创建该环境的变量对象,初始化变量对象时会自动添加两个变量:this和arguments,因此可以在函数中使用这两个变量.需要注意的是,this变量不能重新赋值,而arguments可以,如下: function test() { var name = 'test2'; arguments = window; this = window; // 在这一行js运行会报错 } 2.this取值于函数据以执行的函数对象 2.1 当函数在全局作用域执行时

如何在AJAX的毁掉函数中传递JSON数据?如何在控制器中接受并转换成数组?

首先,我们经过测试(或者你平时的开发经验)知道,在AJAX的回调函数中使用get或者post方式可以传递字符串(不信可以自己去写实例测试,不过要注意:get方式有数据量的限制): 方法一:我们将ajax的请求放回的JSON数组转换成字符串,然后在回调函数中get过去: a.html页面的AJAX请求代码: b.后台两个处理函数(尤其注意第二个是回调函数指向的处理函数): 方法二:我们在回调函数中直接处理发送一个新的AJAX请求(也可以写成匿名函数),将ajax请回来的JSON数组转化为字符串作为

把一个函数作为参数传入到函数中

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <script> function f1(func){ //func函数作为参数传入f1函数 console.log('1'); //首先进入f1函数 setTimeout(function(){ console.log('2'); //继续进入setTimeout方法

javascript函数中的三个技巧【二】

技巧二: [惰性载入函数] 因为浏览器之间的行为的差异,我们经常会在函数中包含了大量的if语句,以检查浏览器特性,解决不同浏览器的兼容问题,比如,我们最常见的为dom节点添加时间的函数 function addEvent(type, element, fun) { if (element.addEventListener) { element.addEventListener(type, fun, false); } else if(element.attachEvent){ element.a

函数中的类型是怎么工作的

函数中的类型是怎么工作的 理解类型标记 我们已经理解函数了,看看函数中的类型是怎么工作的,还有域和范围.这只是一个概述,这个"understandingF# types"系列会为你详细介绍. 首先,我们应该多理解类型符号一点.我们之后箭头符号用于域和范围,所以它总是像函数签名: val functionName : domain -> range 看这些示例函数 : let intToString x = sprintf "x is %i" x // form

c++中函数中变量内存分配以及返回指针、引用类型的思考

众所周知,我们在编程的时候经常会在函数中声明局部变量(包括普通类型的变量.指针.引用等等). 同时,为了满足程序功能的需要,函数的返回值也经常是指针类型或是引用类型,而这返回的指针或是引用也经常指向函数中我们自己声明的局部变量. 这样,程序在某些情况下就可能存在一定的问题.看似很简单的问题,通过仔细的分析,我们就能够更好的理解c++中内存分配和释放的问题. 好,废话不多说,我们进入正题.首先,简单介绍一下程序的内存区域的分配: 程序的内存分配 ①堆区(heap).这一部分主要是由程序开发人员自己

在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句

在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句 突然看到这个问题,脑袋一蒙,不知道啥意思,后来想想,试图把select里的选项放到后面,问题自然解决! 下面这个就是报“orderdate select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry,相应的从网上看到其他的朋友也有这样的问题 比如要显示authors表中