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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

来吧学学.Net Core之项目文件简介及配置文件与IOC的使用

發布時間:2023/12/4 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 来吧学学.Net Core之项目文件简介及配置文件与IOC的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序言

在當前編程語言蓬勃發展與競爭的時期,對于我們.net從業者來說,.Net Core是風頭正緊,勢不可擋的.蕓蕓口水之中,不學習使用Core,你的圈內處境或許會漸漸的被邊緣化.所以我們還是抽出一點點時間學學.net core吧.

那VS Code 可以編寫,也可以調試Core本人也嘗試啦下,但是感覺扯淡的有點多,還是使用宇宙第一開發工具VS2017吧.

由于本篇是core的開篇,所以就稍微啰嗦一點,從創建web項目開始,先說項目文件,再來說一說配置文件與IOC使用.

創建web項目及項目文件簡介

關于web項目的創建,如果你創建不出來,自生自滅吧.點擊右上角的x,拜拜.

從上往下說這個目錄結構

1、launchSettings.json 啟動配置文件,文件默認內容如下.

{ ?"iisSettings": { //使用IIS Express啟動"windowsAuthentication": false, //是否啟用windows身份驗證 ?"anonymousAuthentication": true, //是否啟用匿名身份驗證"iisExpress": { ? ? ?"applicationUrl": "http://localhost:57566/", //訪問域名,端口"sslPort": 0}}, ?"profiles": { ? ?"IIS Express": { ? ? ?"commandName": "IISExpress", ? ? ?"launchBrowser": true, ? ? ?"environmentVariables": { ? ? ? ?"ASPNETCORE_ENVIRONMENT": "Production" //環境變量,默認為開發環境(Development),預發布環境(Staging),生產環境(Production) ? ? ?}}, ? ?"WebApplication1": { //選擇本地自宿主啟動,詳見Program.cs文件。刪除該節點也將導致Visual Studio啟動選項缺失"commandName": "Project", ? ? ?"launchBrowser": true, ? ? ?"environmentVariables": { ? ? ? ?"ASPNETCORE_ENVIRONMENT": "Development"}, ? ? ?"applicationUrl": "http://localhost:57567" //本地自宿主端口 ? ?}} }

在vs的設計視圖中也可以編輯,如下圖,自己扣索下.

2、wwwroot和bower.json 靜態資源文件夾與引入靜態資源庫包版本配置文件,自己打開看下

3、依賴項,這個里面有4種吧,一種是bower前端資源庫,Nuget第三方,SDK,項目本身

4、Controllers,Views,這個不用介紹吧,mvc的2主.

5、appsettings.json :應用配置文件,類似于.net framework中的web.config文件

6、bundleconfig.json:打包壓縮配置文件

7、Program.cs:里面包含一個靜態Main文件,為程序運行的入口點

8、Startup.cs:這個默認為程序啟動的默認類.

這里的配置文件與2個入口類文件是萬物的根基,靈活多變,其中用我們值得學習了解的東西很多,這一章我不做闡述,后續章節再來補習功課,見諒,謹記.

.Net Core讀取配置文件

這個是我第一次入手學習core時候的疑問,我先是按照.Net Framework的方法來讀取配置文件,發現Core中根本沒有System.Configuration.dll.那怎么讀取配置文件呢?

那么如果要讀取配置文件中的數據,首先要加載Microsoft.Extensions.Configuration這個類庫.

首先看下我的默認配置文件,appsettings.json

{ ?"Logging": { ? ?"IncludeScopes": false, ? ?"LogLevel": { ? ? ?"Default": "Warning"}} ? }

讀取他的第一種方式

/// <summary>/// 獲取配置節點對象 ? ? ? ?/// </summary> public static T GetSetting<T>(string key, string fileName = "appsettings.json") where T : class, new(){IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).Add(new JsonConfigurationSource { Path = fileName, Optional = false, ReloadOnChange = true }).Build(); ? ? ? ? ? ?var appconfig = new ServiceCollection().AddOptions().Configure<T>(config.GetSection(key)).BuildServiceProvider().GetService<IOptions<T>>().Value; ? ? ? ? ? ?return appconfig;} public class Logging{ ? ? ? ?public bool IncludeScopes { get; set; } ? ? ? ?public LogLevel LogLevel { get; set; }} ? ?public class LogLevel{ ? ? ? ?public String Default { get; set; }} var result =GetSetting<Logging>("Logging");

這樣即可,讀取到配置文件的內容,并填充配置文件對應的對象Logging.

如果你有自定義的節點,如下

{ ?"Logging": { ? ?"IncludeScopes": false, ? ?"LogLevel": { ? ? ?"Default": "Warning"}}, ?"Cad": { ? ?"a": false, ? ?"b": "18512312" ? ?} ? }

與上面一樣,首先定義對應的對象

public class Cad{ ? ? ?
? ? ?
public bool a { get; set; } ?
? ? ?
public string b { get; set; }} var result = GetSetting<Cad>("Cad");

有啦上面的方法很是簡單,還有一種情況是你想有自己的配置文件myconfig.json,那也很簡單,把上述方法的默認文件名改為myconfig.json即可!

除啦這個方法可以獲取配置文件外,core在mvc中還有另外獲取配置文件的方法,如下.

IOptions<Cad> cadConfig; ? ? ?
? ? ? ?
public HomeController(IOptions<Cad> config){cadConfig = config;} ? ? ?

? ? ? ?
public IActionResult Index(){ ? ? ? ?
? ? ? ?? ?
try{ ? ? ? ? ? ? ? ?var result = cadConfig.Value; ? ? ? ? ? ? ? ?return View(result);} ? ? ? ? ? ?catch (Exception ex){ ? ? ? ? ? ? ? ?return View(ex);}}

就這樣,用法也很簡單.

但是如果配置文件中有的配置項需要你動態修改,怎么辦呢,用下面的方法試試.

/// <summary>/// 設置并獲取配置節點對象 ? ? ? ?/// </summary> public static T SetConfig<T>(string key, Action<T> action, string fileName = "appsettings.json") where T : class, new(){IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(fileName, optional: true, reloadOnChange: true).Build(); ? ? ? ? ? ?var appconfig = new ServiceCollection().AddOptions().Configure<T>(config.GetSection(key)).Configure<T>(action).BuildServiceProvider().GetService<IOptions<T>>().Value; ? ? ?
? ? ? ? ? ?
return appconfig;} var c =SetConfig<Cad>("Cad", (p => p.b = "123"));

ok啦,自己試試吧,對配置文件的讀取,我這里目前只做到這里,后續有新的好方法再來分享.

.Net Core中運用IOC

當然在.net framework下能夠做依賴注入的第三方類庫很多,我們對此也了然于心,但是在core中無須引入第三放類庫即可做到.

public interface IAmount{ ? ? ?
?
string GetMyBanlance(); ? ?
?? ?
string GetMyAccountNo();} ?

??
public class AmountImp: IAmount{ ? ?
? ? ? ?
public string GetMyBanlance(){ ? ? ? ? ? ?return "88.88";} ? ? ? ?public string GetMyAccountNo(){ ? ? ? ? ? ?return "CN0000000001";}}

上面一個接口,一個實現,下面我們在Startup的ConfigureServices中把接口的具體實現注冊到ioc容器中.

public class Startup{ ? ? ? // This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){services.AddScoped<IAmount, AmountImp>(); ? ? ? ? ? ?// Add framework services. ? ? ? ? ? ?services.AddMvc();}}


public class HomeController : Controller{IAmount amount; ? ? ?
? ? ? ?
public HomeController(IAmount _amount){amount = _amount;} ? ? ?
? ? ? ?
public IActionResult Index(){ ? ? ? ?
? ? ? ?? ?
try{ ? ? ? ? ?
var result = amount.GetMyAccountNo(); //結果為: "CN0000000001"return View();} ? ? ? ? ? ?catch (Exception ex){ ? ? ? ? ? ? ? ?return View(ex);}}
? ?}

這里呢,我只做一個簡單的示例,以供我們熟悉了解core,后續章節,如果運用的到會深入.

總結

入手.net core還是需要有很多新的認識點學習的,不是一兩篇博文可以涵蓋的,我們自己需要多總結思考學習.

這里我把一些的點,貼出來,希望對想入手core的同學有所幫助.如有志同道合者,歡迎加左上方群,一起學習進步.

原文地址:http://www.cnblogs.com/knowledgesea/p/7079880.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的来吧学学.Net Core之项目文件简介及配置文件与IOC的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 李丽珍毛片 | 亚洲综合日韩精品欧美综合区 | 经典一区二区三区 | 天天做天天爱夜夜爽 | 日韩中文在线观看 | 亚洲欧洲国产日韩 | 久久久久一区二区三区 | 91久久国语露脸精品国产高跟 | 国产一区精品在线 | 精品视频在线免费 | 国产高清一级片 | 日日夜夜操操操 | 免费久久网站 | 欧美大肥婆大肥bbbbb | 狠狠操在线 | 特级做a爱片免费69 少妇第一次交换又紧又爽 亚洲大胆人体 | 99久久人妻无码中文字幕系列 | 一级片免费观看 | 国产吞精囗交久久久 | 91网站免费在线观看 | 久久婷婷五月国产色综合激情 | 日韩欧美国产视频 | 午夜剧场免费在线观看 | 欧美激情免费在线观看 | 成人午夜视频一区二区播放 | 91九色偷拍 | 蜜桃传媒一区二区亚洲 | 成人福利网址 | 中文字幕在线二区 | 日韩在线国产精品 | a毛片大片 | 青青草视频黄 | 免费无码国产精品 | 久操视频免费观看 | 亚洲国产一区二区三区在线观看 | 亚洲黄色免费观看 | 美女洗澡隐私免费网站 | 午夜精品久久久久久久 | 在线观看污视频网站 | 久久精品中文字幕 | 二区在线播放 | 四虎影| 摸摸大奶子 | 免费欧美一级片 | 国产高清www | 国产免费大片 | 大度亲吻原声视频在线观看 | 午夜性刺激免费视频 | 欧美日韩黑人 | 天天干天天日夜夜操 | 免费成人精品 | 精东av在线 | 波多野结衣亚洲一区 | 亚洲人免费 | av天天有 | 天天综合天天 | 精品人妻aV中文字幕乱码色欲 | 亚洲草逼 | 欧美一级色片 | 国产九九在线 | 伊人久久免费视频 | 国产中文字幕在线播放 | 色香欲综合网 | 一区在线不卡 | 国产精品一级黄片 | 久久亚洲欧洲 | 欧美性猛交99久久久久99按摩 | 911av| 久久国产美女 | 欧美成年人视频 | 欧美一级片黄色 | 国产精品成人午夜视频 | 99re这里只有精品在线 | 姐姐你真棒插曲快来救救我电影 | 黑人番号 | 欧美一区二区 | 毛片基地免费观看 | 亚洲熟女综合一区二区三区 | 国产成人a亚洲精品 | av一本二本 | 成人黄色一区二区三区 | 浪漫樱花动漫在线观看免费 | 日韩在线播放一区二区 | 奇米在线 | 给我看高清的视频在线观看 | 欧美另类极品 | 亚洲在线资源 | 日韩免费久久 | 亚州中文字幕 | 亚洲一区二区三区电影 | 俄罗斯厕所偷拍 | 亚洲图片欧美 | 国产天天操| 欧美呦交| 亚洲无人区码一码二码三码的含义 | 美女a视频 | 香蕉成人在线视频 | 日本久久高清 | 老汉色老汉首页av亚洲 |