日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入

發(fā)布時間:2025/4/5 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

系列目錄

前言:

有時候我們系統(tǒng)需要開放數(shù)據(jù)給手機(jī)App端或其他移動設(shè)備,不得不說Asp.net WebApi是目前首選

本節(jié)記錄Asp.net MVC WebApi怎么利用Unity注入。系列開頭已經(jīng)講解了普通的Asp.net MVC如何用Unity注入容器

不明白什么是IOC,DI,控制反轉(zhuǎn)的自行百度補(bǔ)腦,否則無法閱讀本文

其實(shí)這也是一次技術(shù)上的記錄,因?yàn)檎冶榇蟀俣染尤粵]有可以用的利用Unity注入的WebApi!感謝隨風(fēng)朋友的提醒。才能完成本節(jié)的指導(dǎo)

為了更好的理解,請下載代碼

鏈接:https://pan.baidu.com/s/1QjKHPbyNELrrZhuM3JD0dA 密碼:lv1f

(這是一個已經(jīng)包含了Unity注入的普通MVC例子)包含4個需要被注入的類庫,BLL,IBLL,DAL,IDAL

開發(fā)工具:VS2013+SQL2012(數(shù)據(jù)庫不是必要)

開始:

1.新建Asp.Net MVC WebApi項(xiàng)目

2.安裝Unity.WebApi程序包解析一下,這里有依賴項(xiàng):Unity >=4.0.1

(我們之前的注入就只安裝了Unity)所以Unity.WebApi是需要Unity4.0.1支持的。

安裝Unity.WebApi會自動安裝很多依賴項(xiàng):Unity (≥ 4.0.1),CommonServiceLocator,Microsoft.AspNet.WebApi.Core,Microsoft.AspNet.WebApi.Client ,Newtonsoft.Json?

網(wǎng)絡(luò)不好會很漫長,需要難心等待?;蛘叩絥uget官方下載離線的

3.Apps.Core也需要同樣安裝Untiy.WebApi

安裝完成后在Apps.WebApi下將自動多出一個文件

添加代碼到UnityConfig.cs

using Apps.Core; using Microsoft.Practices.Unity; using System.Web.Http; using Unity.WebApi;namespace Apps.WebApi {public static class UnityConfig{public static void RegisterComponents(){UsingUnityContainer.Init();DependencyRegisterType.Container_Sys(ref UsingUnityContainer._container);GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(UsingUnityContainer._container);}} }

最后添加UnityConfig.RegisterComponents();到Global.asax 。必須在全局文件添加,本注入是運(yùn)行時注入

using Apps.Core; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing;namespace Apps.WebApi {public class WebApiApplication : System.Web.HttpApplication{protected void Application_Start(){AreaRegistration.RegisterAllAreas();GlobalConfiguration.Configure(WebApiConfig.Register);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);UnityConfig.RegisterComponents();}} }

4.修復(fù)錯誤

運(yùn)行之后會出現(xiàn)錯誤

這是由于Web.config節(jié)點(diǎn)缺乏解析造成。

需要添加以下節(jié)點(diǎn)

<dependentAssembly><assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly>

運(yùn)行之后就沒有問題了。

在Home/Index.cshtml編寫一個簡單的請求的測試一下

<script src="~/Scripts/jquery-1.10.2.min.js"></script> <script> $(function(){$.get("/Api/Values/5",function(data){alert(data);});}); </script>

5.運(yùn)行并調(diào)試

添加控制反轉(zhuǎn)代碼到ValuesController

[Dependency]public ISysPersonBLL m_BLL { get; set; }

這樣我們就可以用m_BLL來訪問BLL的方法,達(dá)到控制反轉(zhuǎn)的目的

如果斷點(diǎn)執(zhí)行到調(diào)用處,那么恭喜你,注入順利成功,可以調(diào)用了(配圖為返回數(shù)據(jù)庫第一條數(shù)據(jù)的ID,數(shù)據(jù)和腳本在源碼下載查看)

可以順利訪問到數(shù)據(jù)庫

總結(jié)

以上是生活随笔為你收集整理的ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。