第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 .NET 應(yīng)用程序中注入配置對(duì)象

在 .NET 應(yīng)用程序中注入配置對(duì)象

C#
藍(lán)山帝景 2023-09-09 14:57:50
我正在審查我之前編寫(xiě)的代碼,我注意到我過(guò)去曾這樣做過(guò)  public class Linq2DbSettings : ILinqToDBSettings{    public IEnumerable<IDataProviderSettings> DataProviders    {        get { yield break; }    }    public string DefaultConfiguration =>        "SqlServer"; // lets set your configuration as default, so you can call just new DataContext() or new DataConnection()    public string DefaultDataProvider => ProviderName.SqlServer; // and set default database type    public IEnumerable<IConnectionStringSettings> ConnectionStrings    {        get        {            yield return                new ConnectionStringSettings                {                    Name = "SqlServer",                    ProviderName = "SqlServer",                    ConnectionString =ConfigurationManager.ConnectionStrings["default"].ConnectionString                };        }    }}public class ConnectionStringSettings : IConnectionStringSettings{    public string ConnectionString { get; set; }    public string Name { get; set; }    public string ProviderName { get; set; }    public bool IsGlobal => false;}即使它與 Linq2Db 相關(guān),它也適用于我需要解析容器的所有類(lèi)。正如你所看到的,我在這里使用ConfigurationManager.ConnectionStrings["default"],而最好使用IConfiurationfromMicrosoft.Extensions.Configuration為此,我應(yīng)該解析IConfiguration在 SimpleInjector 的容器中注冊(cè)的項(xiàng)目。過(guò)去我用過(guò)包裝紙public static class ContainerWrapper{    public static Container Container { get; set; }}我將其指定為    ContainerWrapper.Container = container;    container.Verify();但我認(rèn)為這是一個(gè)錯(cuò)誤的方法,最好的解決方案是什么?
查看完整描述

1 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

我的建議如下:

  • 保持你的配置對(duì)象范圍窄;不要?jiǎng)?chuàng)建包含大量屬性并被許多使用者使用的寬配置對(duì)象。

  • 防止配置對(duì)象從配置系統(tǒng)中讀取。相反,使它們成為不可變的無(wú)行為數(shù)據(jù)對(duì)象,并在其構(gòu)造函數(shù)中為它們提供配置值。這可以防止配置對(duì)象成為易失性依賴(lài)項(xiàng)。

  • 刪除配置對(duì)象上的接口。接口旨在隱藏行為,但配置對(duì)象應(yīng)該只包含數(shù)據(jù)。

  • 在應(yīng)用程序啟動(dòng)期間加載配置值,并將這些配置對(duì)象注冊(cè)到Singleton容器中。


查看完整回答
反對(duì) 回復(fù) 2023-09-09
  • 1 回答
  • 0 關(guān)注
  • 106 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)