中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做電商網(wǎng)站一般需要什么流程可以免費推廣的網(wǎng)站

做電商網(wǎng)站一般需要什么流程,可以免費推廣的網(wǎng)站,專業(yè)制作戶口本,優(yōu)秀個人網(wǎng)站設(shè)計欣賞在.net中的配置文件系統(tǒng)支持豐富的配置源,包括文件(json、xml、ini等)、注冊表、環(huán)境變量、命令行、Azure Key Vault等,還可以配置自定義配置源并跟蹤配置的改變,然后按照優(yōu)先級進行覆蓋,總之對文件的配置有很多方法,這…

在.net中的配置文件系統(tǒng)支持豐富的配置源,包括文件(json、xml、ini等)、注冊表、環(huán)境變量、命令行、Azure Key Vault等,還可以配置自定義配置源并跟蹤配置的改變,然后按照優(yōu)先級進行覆蓋,總之對文件的配置有很多方法,這里我們就舉幾個最常用的例子來講解。

目錄

config配置管理

選項方式讀取

配置提供方式

自定義配置


config配置管理

配置json文件:是目前最常用的配置文件格式,在.net中也有許多針對json文件格式進行處理的配置,這里我們可以直接在.net core項目中添加一個json文件,然后里面寫一些配置信息,如下:

{"name": "test-app","age": "20","proxy": {"address": "aaa"}
} 

寫好config.json配置文件之后,我們需要右鍵其屬性然后設(shè)置一下復(fù)制到最新目錄的情況:

然后我們借助NuGet安裝兩個包,如下一個是對config配置的包,一個是對json操作的包:

然后我們執(zhí)行如下語句,通過ConfigurationBuilder加載一個json配置文件,從配置中讀取簡單的鍵值對(例如 "name")以及嵌套的配置項(例如 "proxy:address"),輸出讀取到的配置信息:

namespace Program
{class Program{static void Main(string[] args){ConfigurationBuilder configBuilder = new ConfigurationBuilder();configBuilder.AddJsonFile("config.json", optional: true, reloadOnChange: true);IConfiguration configRoot = configBuilder.Build();string name = configRoot["name"];Console.WriteLine($"name = {name}");string address = configRoot.GetSection("proxy:address").Value;Console.WriteLine($"address = {address}");Console.ReadKey();}}
}

得到的結(jié)果如下所示:

綁定讀取配置:當(dāng)然我們還可以綁定一個類去自動完成配置的讀取,首先我們先借助NuGet安裝如下一個包:

然后我們定義一個類來映射config中的proxy配置,然后通過Get方式拿到相應(yīng)數(shù)據(jù)展示:

namespace Program
{class Program{static void Main(string[] args){ConfigurationBuilder configBuilder = new ConfigurationBuilder();configBuilder.AddJsonFile("config.json", optional: true, reloadOnChange: true);IConfiguration configRoot = configBuilder.Build();Proxy proxy = configRoot.GetSection("proxy").Get<Proxy>();Console.WriteLine($"Proxy: address={proxy.Address} port={proxy.Port}");Console.ReadKey();}}class Proxy{public string Address { get; set; }public string Port { get; set; }}
}

得到的結(jié)果如下所示:?

當(dāng)然我們還可以直接通過Get拿到config中的數(shù)據(jù),通過定義相關(guān)的類然后設(shè)置對應(yīng)的類型即可:

選項方式讀取

在讀取文件中推薦使用選項方式進行讀取,和DI結(jié)合方式比較好且能更好的利用reloadonchange機制,這里除了上文我們需要安裝的三個包之外,這里我們還是需求安裝一下下面這個包:

讀取配置的時候,DI要聲明IOptions<T>、IOptionsMonitor<T>、IOptionsSnapshot<T>等類型,因為IOptions<T>不會讀取到新的值,和IOptionsMonitor<T>相比IOptionsSnapshot會在同一個范圍內(nèi)(.net core一個請求中)保持一致,因此建議使用IOptionsSnapshot<T>類型。

IOptionsSnapshot讀取:在讀取配置的地方,用IOptionsSnapshot<T>注入,不要在構(gòu)造函數(shù)里面直接讀取IOptionsSnapshot.Value而是在用到的地方再讀取,否則就無法更新變化,如下所示:

在TestController中使用依賴注入模式來管理和訪問配置,通過IOptionsSnapshot<Config>獲取配置文件中的值(例如 name 和 age):

namespace test
{class TestController{private readonly IOptionsSnapshot<Config> optConfig;public TestController(IOptionsSnapshot<Config> optConfig){this.optConfig = optConfig;}public void Test(){Console.WriteLine(optConfig.Value.name);Console.WriteLine(optConfig.Value.age);}}
}

接下來通過通過IOptions接口來讀取配置文件并將其注入到類中,

namespace Program
{class Program{static void Main(string[] args){ServiceCollection services = new ServiceCollection();services.AddScoped<TestController>();ConfigurationBuilder configBuilder = new ConfigurationBuilder();configBuilder.AddJsonFile("config.json", optional: true, reloadOnChange: true);IConfiguration configRoot = configBuilder.Build();services.AddOptions().Configure<Config>(e => configRoot.Bind(e));using(var sp = services.BuildServiceProvider()){var test = sp.GetRequiredService<TestController>();test.Test();}Console.ReadKey();}}class Config{public string name { get; set; }public string age { get; set; }public Proxy Proxy { get; set; }}class Proxy{public string Address { get; set; }public string Port { get; set; }}
}

如下執(zhí)行通過使用ServiceProvider獲取TestController實例,TestController在構(gòu)造時自動注入配置,最后TestController調(diào)用了Test()方法輸出配置文件中的name、age詳細信息:

配置提供方式

讀取調(diào)試參數(shù):配置文件除了上面講解的讀取config等配置文件的方式外,框架還支持從命令行參數(shù)、環(huán)境變量等地方讀取, 借助NuGet安裝如下的包進行使用:

安裝完包之后,我們將之前加載json文件的格式修改為命令行的形式,如下:

然后我們右鍵我們的項目選擇屬性,然后找到調(diào)試的按鈕,輸入相關(guān)的參數(shù)信息即可,對于環(huán)境變量或命令行等簡單的鍵值對結(jié)構(gòu),如果想要進行復(fù)雜結(jié)構(gòu)的配置,需要進行扁平化處理,對于配置的名字需要采用“層級配置”,例如:a:b:c 賦值的話這樣配置 a:b:c:0,例如:

name=zhangsan;age=18;proxy:address=aaa;proxy:port=80;

proxy:ids:0=3;proxy:ids:1=5;

輸入完成之后我們的項目會自動生成一個配置文件,然后我們運行項目之后就會打印該文件內(nèi)容:

讀取環(huán)境變量:如果想讀取環(huán)境變量中的數(shù)據(jù)的話,可以借助NuGet安裝如下的包

然后我們在環(huán)境變量中配置如下的數(shù)據(jù),VS調(diào)試時為了避免修改系統(tǒng)環(huán)境變量,可以直接在VS中設(shè)置環(huán)境變量的方法:

然后我們就可以我們在使用環(huán)境變量的函數(shù)獲取當(dāng)前環(huán)境變量的數(shù)據(jù),該函數(shù)是有參數(shù)和沒有參數(shù)兩種情況的,無參數(shù)版本會把程序相關(guān)的所有環(huán)境變量都加載進來,由于有可能和系統(tǒng)中已有的環(huán)境變量沖突,因此這邊可以建議使用有prefix參數(shù)進行配置讀取的,讀取配置的時候prefix參數(shù)會被忽略:

當(dāng)然.net core還支持其他配置源,例如ini、xml等格式的配置源,還支持在運行或調(diào)試時加載不同的json文件,而且還內(nèi)置了第三方支持中心化配置服務(wù)器,例如Azure、阿里云等,具體使用可以查詢相關(guān)文檔,這里不再贅述。

自定義配置

.net core中不建議使用.net framework里的web.config,不過仍繼續(xù)提供ConfigurationManager,不過官方?jīng)]有支持通過新的Configuration框架讀取方式,這里我們建議自行編寫一個自定義配置提供者,實際使用意義不大,主要還是了解讀取配置的方法。具體步驟如下:

編寫ConfigurationProvider類實際讀取配置

開發(fā)一個直接或間接實現(xiàn)IConfigurationProvider接口的類xxxConfigurationProvider,一般繼承自ConfigurationProvider,如果是從文件讀取是可以繼承自FileConfigurationProvider,重寫Load方法把扁平化數(shù)據(jù)設(shè)置到Data屬性即可。

ConfigurationSource在Build中返回ConfigurationProvider對象

開發(fā)一個實現(xiàn)IConfigurationSource接口的類xxxConfigurationSource,如果是從文件讀取可以繼承自FileConfigurationSource,在Build方法中返回上面的ConfigurationProvider對象。

ConfigurationSource對象加入IConfigurationBuilder

使用configurationBuilder.Add(new ConfigurationSource())即可,為了簡化使用一般還提供一個IConfigurationBuilder的擴展方法。

http://www.risenshineclean.com/news/53800.html

相關(guān)文章:

  • 菏澤做網(wǎng)站公司精準(zhǔn)客源引流平臺
  • 做網(wǎng)站使用什么語言寫簡述網(wǎng)站內(nèi)容如何優(yōu)化
  • 網(wǎng)站排名系統(tǒng)哪個好深圳防疫措施優(yōu)化
  • 寧鄉(xiāng)網(wǎng)站建設(shè)外貿(mào)營銷網(wǎng)站制作
  • 網(wǎng)站建設(shè)行業(yè)動態(tài)重慶森林電影完整版
  • 做網(wǎng)站前景怎么樣推廣賺錢的平臺有哪些
  • 網(wǎng)站和其他系統(tǒng)對接怎么做seo項目是什么
  • 網(wǎng)站開發(fā)技術(shù)發(fā)展史網(wǎng)絡(luò)營銷方案策劃論文
  • 廣宏建設(shè)集團有限公司網(wǎng)站重慶網(wǎng)絡(luò)seo
  • 武漢網(wǎng)站設(shè)計的學(xué)校網(wǎng)絡(luò)營銷一般月薪多少
  • 四省網(wǎng)站建設(shè)如何設(shè)計網(wǎng)站步驟
  • 企業(yè)網(wǎng)站建立喬拓云智能建站
  • 手機asp網(wǎng)站開發(fā)工具拼多多關(guān)鍵詞排名在哪里看
  • 一站式服務(wù)平臺登錄網(wǎng)站策劃方案案例
  • 網(wǎng)站主體信息俄羅斯搜索引擎入口 yandex
  • 中國紀(jì)檢監(jiān)察報網(wǎng)站關(guān)鍵詞查詢工具
  • 保險網(wǎng)站建設(shè)的總體目標(biāo)seo優(yōu)化交流
  • 中文域名可以做網(wǎng)站嗎企業(yè)官網(wǎng)搭建
  • dw設(shè)計做網(wǎng)站完整案例市場調(diào)研報告怎么寫范文
  • wordpress調(diào)用文章列表廣州營銷seo
  • 用c 做的網(wǎng)站怎么打開嗎百度seo關(guān)鍵詞優(yōu)化公司
  • 做網(wǎng)站加模塊今日熱榜
  • 網(wǎng)站做關(guān)鍵詞搜索要好多錢潮州seo建站
  • 招聘網(wǎng)絡(luò)營銷推廣人員seo搜索引擎優(yōu)化試題及答案
  • 做空調(diào)的網(wǎng)站蘭州模板網(wǎng)站seo價格
  • php網(wǎng)站開發(fā)技術(shù)廣州seo營銷培訓(xùn)
  • 天津網(wǎng)站建設(shè)索王道下拉怎么做網(wǎng)絡(luò)推廣最有效
  • 廣州網(wǎng)站優(yōu)化渠道北京網(wǎng)站搭建哪家好
  • 臨海建設(shè)局官方網(wǎng)站濟南網(wǎng)絡(luò)優(yōu)化哪家專業(yè)
  • 用html做網(wǎng)站搜索框可以投放廣告的網(wǎng)站