一、起首竖立一个MVC项目称号叫SpringDemo,然后用NuGet下载spring(我用的是Spring.Net NHibernate 4 support)
二、类设想,在Models文件夹下面竖立类,重要IUserInfo,UserInfo,Order 三个类代码以下:
public interface IUserInfo {string ShowMeg(); }
public class UserInfo : IUserInfo {public string UserName { get; set; }public Order OrderBy { get; set; }public string ShowMeg() {return "姓名:" + UserName + "订单号:" + OrderBy.OrderNo; } }
public class Order {public string OrderNo { get; set; } }
三、进入症结的一步:修正设置文件。在web.config里直接修正 以下:
<sectionGroup name="spring"> <!--剖析spring块的对象--> <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/> <!--设置剖析spring寄存对象的容器鸠合--> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/></sectionGroup> </configSections><!--****************** Spring 设置最先 ******************--> <spring><context> <!--容器设置,设置当前容器对象放在上面位置:当前是在如今的设置文件中--> <resource uri="config://spring/objects" /><!--当前--></context><objects xmlns="http://www.springframework.net"> <!--这里寄存容器一切节点--> <description>An example that demonstrates simple Ioc features</description> <!-- name 必需唯一 能够随便定名,平常为范例称号,type=类的悉数称号,地点顺序集,目标是为了让容器轻松的反射建立对象--> <object name="UserInfo" type="SpringDemo.Models.UserInfo,SpringDemo"><property name="UserName" value="老王" /><!--ref 指向下面的属相注入--><property name="OrderBy" ref="Order" /> </object> <object name="Order" type="SpringDemo.Models.Order,SpringDemo"><property name="OrderNo" value="20170808" /> </object></objects> </spring> <!--****************** Spring 设置完毕 ******************-->
四、代码测试,新建掌握器,代码以下:
public ActionResult Index() { IApplicationContext ctx = ContextRegistry.GetContext(); IUserInfo lister = (IUserInfo)ctx.GetObject("UserInfo"); ViewBag.msg = lister.ShowMeg();return View(); }
五、前台增加显现 @ViewBag.msg 运转结果以下:
六、前已功德圆满,但假如想把设置文件零丁出来该怎么弄呢,为了到达测试结果新建一个类NewUserInfo 代码以下:
public class NewUserInfo : IUserInfo {public NewUserInfo(string name, Order order) {this.UserName = name;this.OrderBy = order; }public string UserName { get; set; }public Order OrderBy { get; set; }public string ShowMeg() {return "姓名:" + UserName + "订单号:" + OrderBy.OrderNo; } }
七、新建文件夹Config下竖立objects.xml 属性设置生成到目次 内容以下:
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net"> <!--这里寄存容器一切节点--> <description>An example that demonstrates simple Ioc features</description> <!--组织函数注入--> <object name="NewUserInfo" type="SpringDemo.Models.NewUserInfo,SpringDemo"><constructor-arg index="0" value="张学友"/><constructor-arg index="1" ref="Order"/> </object> <!--庞杂依靠注入--> <object name="Order" type="SpringDemo.Models.Order,SpringDemo"><property name="OrderNO" value="20170909"/> </object> </objects>
八、修正web.config 指定objects.xml为剖析依靠
<resource uri="~/Config/objects.xml" /><!--指定文档-->
九、在Home掌握器下竖立Action NewUserInfo 代码以下:
public ActionResult NewUserInfo() { IApplicationContext ctx = ContextRegistry.GetContext(); IUserInfo lister = (IUserInfo)ctx.GetObject("NewUserInfo"); ViewBag.msg = lister.ShowMeg();return View(); }
十、前台增加显现 @ViewBag.msg 运转结果以下:
总结:IoC给我们带来了许多的轻易,当我们以为运用简朴工场不好的时刻,能够用IoC来替代,而且大部分都支撑AOP。
祝君好运
以上就是分享一个IoC入门教程实例的细致内容,更多请关注ki4网别的相干文章!