unity(c# ioc框架) 使用总结
2018-02-13 18:11
483 查看
这里的unity指的是完成依赖注入的unity而不是游戏引擎。
原本项目完成依赖注入用的是spring.net,但是spring.net已经很久没人维护了,所以微软官方推出的Unity成为了替代spring.net的最佳候选之一。
简单控制台demo:
首先新建控制台应用,nuget搜索unity并安装。
using System; using Unity; using Unity.Attributes; namespace ConsoleApp1 { public class Index { [Dependency] public virtual IUserService UserService { set; get; } public static void Main(string[] args) { var container = new UnityContainer(); container.RegisterType<IUserService, UserService>(); //注册 IUserService userService = container.Resolve<IUserService>(); //获取 userService.Hello(); } } public interface IUserService { void Hello(); } class UserService : IUserService { public void Hello() { Console.WriteLine("hello"); } } }
在asp.net mvc里使用unity:
1、新建asp.net mvc应用,nuget安装unity.mvc
2、新建类库BLL、IBLL,完成后目录如下:
3、BLL新建UserService,IBLL新建IUserService,实现Hello方法
namespace IBLL { public interface IUserService { string Hello(); } }
using IBLL; namespace BLL { public class UserService:IUserService { public string Hello() { return "hello"; } } }
4:在Global.asax.cs里填写配置。示例如下:
using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using BLL; using IBLL; using Unity; using Unity.AspNet.Mvc; namespace WebApp { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); var container = BuildUnityContainer(); //自定义BuildUnityContainer方法,获取容器 DependencyResolver.SetResolver(new UnityDependencyResolver(container)); } IUnityContainer BuildUnityContainer() { UnityContainer container = new UnityContainer(); container.RegisterType<IUserService, UserService>();return container; } } }
5、在Control中获得UserService类并使用
using System.Web.Mvc; using IBLL; namespace WebApp.Controllers { public class HomeController : Controller { private IUserService UserService;public HomeController(IUserService userService) { this.UserService = userService; //使用构造函数注入 } public ActionResult Index() { string str = UserService.Hello(); return Content(str); } } }
这样就完成了一个最简单的mvc demo。
别的如使用配置文件、使用其他方法注入等详细操作,可以参考这篇博文:https://www.geek-share.com/detail/2561527102.html
unity官方文档:https://msdn.microsoft.com/en-us/library/ff649564.aspx
相关文章推荐
- 专门为C#和Unity编写的IoC框架:StrangeIoC
- C#使用Unity框架
- AS3 IOC框架Spring Actionscript 的使用总结
- .NET Unity IOC框架使用实例
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- .NET Unity IOC框架使用实例
- 总结Unity IOC容器通过配置实现类型映射的几种基本使用方法
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- C#使用Unity框架
- .NET Unity IOC框架使用实例详解
- 【Unity】mvcs中StrangeIoc框架的概念和使用方法汇总(详尽版)
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- C#使用Unity框架
- 使用Microsoft的IoC框架:Unity来对.NET应用进行解耦
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- AS3 IOC框架Spring Actionscript 的使用总结
- C# 对轻量级(IoC Container)依赖注入Unity的使用
- Unity中C#单例模式使用总结
- C# 对轻量级(IoC Container)依赖注入Unity的使用