[{"data":1,"prerenderedAt":3327},["Reactive",2],{"navigation":3,"/posts/azure-sdk-di":204,"/posts/azure-sdk-di-surround":3299},[4,192,200],{"title":5,"_path":6,"children":7,"icon":191},"Blog","/posts",[8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,176,179,182,185,188],{"title":9,"_path":10},"Testing your API with REST Client","/posts/testing-your-api-with-rest-client",{"title":12,"_path":13},"HTML templating in Xamarin","/posts/html-templating-in-xamarin",{"title":15,"_path":16},"Goodbye Azure Portal, Welcome Azure CLI","/posts/welcome-azure-cli",{"title":18,"_path":19},"Coming across Gitpod","/posts/gitpod",{"title":21,"_path":22},"Handle token retrieval while querying an API","/posts/delegating-handler",{"title":24,"_path":25},"Clean up your local git branches.","/posts/cleaning-git-branches",{"title":27,"_path":28},"Automate configuration of Teams Tab SSO with PowerShell.","/posts/teams-sso-powershell",{"title":30,"_path":31},"How to do a technology watch? - Part 1","/posts/technology-watch-part1",{"title":33,"_path":34},"How to do a technology watch? - Part 2","/posts/technology-watch-part2",{"title":36,"_path":37},"You almost no longer need Key Vault references for Azure Functions.","/posts/azure-functions-custom-configuration",{"title":39,"_path":40},"How to do a technology watch? - Part 3","/posts/technology-watch-part3",{"title":42,"_path":43},"Forget DevOps, the future is already here!","/posts/devops-future",{"title":45,"_path":46},"Week 9, 2021 - Tips I learned this week","/posts/w09-2021-tips-learned-this-week",{"title":48,"_path":49},"Week 12, 2021 - Tips I learned this week","/posts/w12-2021-tips-learned-this-week",{"title":51,"_path":52},"Week 14, 2021 - Tips I learned this week","/posts/w14-2021-tips-learned-this-week",{"title":54,"_path":55},"Once upon a time in .NET","/posts/once-upon-a-time-in-dotnet",{"title":57,"_path":58},"Install your applications with winget","/posts/winget-import",{"title":60,"_path":61},"Customize your applications when installing them with winget","/posts/winget-override",{"title":63,"_path":64},"Week 22, 2021 - Tips I learned this week","/posts/w22-2021-tips-learned-this-week",{"title":66,"_path":67},"How to connect to an Azure SQL Database from C# using Azure AD","/posts/sqlclient-active-directory-authent",{"title":69,"_path":70},"Producing packages for Windows Package Manager","/posts/wingetcreate",{"title":72,"_path":73},"4 tips about GitHub Actions environment variables and contexts","/posts/github-actions-var-and-context",{"title":75,"_path":76},"AzureWebJobsStorage, the secret you don't need in your Function App.","/posts/azure-functions-without-azurewebjobsstorage",{"title":78,"_path":79},"ASP.NET Core - Lost in configuration","/posts/lost-in-configuration",{"title":81,"_path":82},"Week 39, 2021 - Tips I learned this week","/posts/w39-2021-tips-learned-this-week",{"title":84,"_path":85},"Week 41, 2021 - Tips I learned this week","/posts/w41-2021-tips-learned-this-week",{"title":87,"_path":88},"Migrating and open-sourcing my blog","/posts/migrating-blog",{"title":90,"_path":91},"Week 45, 2021 - Tips I learned this week","/posts/w45-2021-tips-learned-this-week",{"title":93,"_path":94},"Organize your GitHub stars with Astral","/posts/astral",{"title":96,"_path":97},"Pulumi with an Azure Blob Storage backend","/posts/pulumi-azure-backend",{"title":99,"_path":100},"IaC Hot Reload with Pulumi Watch","/posts/pulumi-watch",{"title":102,"_path":103},"Week 2, 2022 - Tips I learned this week","/posts/w02-2022-tips-learned-this-week",{"title":105,"_path":106},"Week 3, 2022 - Tips I learned this week","/posts/w03-2022-tips-learned-this-week",{"title":108,"_path":109},"Week 5, 2022 - Tips I learned this week","/posts/w05-2022-tips-learned-this-week",{"title":111,"_path":112},"How to provision an Azure SQL Database with Active Directory authentication","/posts/sqldatabase-active-directory-authent",{"title":114,"_path":115},"Why will I choose Pulumi over Terraform for my next project?","/posts/pulumi-vs-terraform",{"title":117,"_path":118},"Week 19, 2022 - Tips I learned this week","/posts/w19-2022-tips-learned-this-week",{"title":120,"_path":121},"Week 20, 2022 - Tips I learned this week","/posts/w20-2022-tips-learned-this-week",{"title":123,"_path":124},"Keeping secrets secure when using API Clients","/posts/http-clients-secrets",{"title":126,"_path":127},"What made me want to be a developer?","/posts/be-a-developer",{"title":129,"_path":130},"What can we do when stuck with a programming problem?","/posts/get-unstuck",{"title":132,"_path":133},"How did I automate the setup of my developer Windows laptop?","/posts/automate-developer-machine",{"title":135,"_path":136},"Discussion about API clients","/posts/http-clients",{"title":138,"_path":139},"Week 46, 2022 - Tips I learned this week","/posts/w46-2022-tips-learned-this-week",{"title":141,"_path":142},"When Pulumi met Nuke: a .NET love story","/posts/when-pulumi-met-nuke",{"title":144,"_path":145},"A year of learning and sharing - Dev Retro 2022","/posts/2022-retro",{"title":147,"_path":148},"Perform Dynamic Execution of an npm Package","/posts/pnpm-dlx",{"title":150,"_path":151},"Manage multiple Node.js versions","/posts/pnpm-env",{"title":153,"_path":154},"Introducing the Vue.js CI/CD series","/posts/vuecicd-introduction",{"title":156,"_path":157},"Execute commands using your project dependencies","/posts/pnpm-exec",{"title":159,"_path":160},"Vue.js CI/CD: Continuous Integration","/posts/vuecicd-ci",{"title":162,"_path":163},"Who is using pnpm?","/posts/pnpm-who-is-using",{"title":165,"_path":166},"Create an Azure-Ready GitHub Repository using Pulumi","/posts/azure-ready-github-repository",{"title":168,"_path":169},"Deploying to Azure from Azure DevOps without secrets","/posts/ado-workload-identity-federation",{"title":171,"_path":172},"Effortlessly Configure GitHub Repositories for Azure Deployment via OIDC","/posts/scripting-azure-ready-github-repository",{"title":174,"_path":175},"Playing with the .NET 8 Web API template","/posts/playing-with-dotnet8",{"title":177,"_path":178},"Another year of sharing and learning - Dev Retro 2023","/posts/2023-retro",{"title":180,"_path":181},"Week 4, 2024 - Tips I learned this week","/posts/w04-2024-tips-learned-this-week",{"title":183,"_path":184},"Using dependency injection with Azure .NET SDK","/posts/azure-sdk-di",{"title":186,"_path":187},"Having Fun With IT Event Calendars","/posts/it-event-calendars",{"title":189,"_path":190},"Call your Azure AD B2C protected API with authenticated HTTP requests from your JetBrains IDE","/posts/http-clients-oauth2","i-heroicons-newspaper",{"title":193,"_path":194,"children":195,"icon":199},"Goodies","/goodies",[196],{"title":197,"_path":198},"My Git Cheat Sheet","/goodies/gitcheatsheet","i-heroicons-gift-solid",{"title":201,"_path":202,"icon":203},"About","/about","i-heroicons-user-circle-solid",{"_path":184,"_dir":205,"_draft":206,"_partial":206,"_locale":207,"title":183,"description":208,"lead":209,"date":210,"image":211,"badge":213,"tags":215,"ImageAttribution":219,"body":220,"_type":3294,"_id":3295,"_source":3296,"_file":3297,"_extension":3298},"posts",false,"","I love how the Azure SDKs have evolved over the years. In the past, there was no consistency between the various Azure SDKs. However, that's not longer the case (at least for most Azure libraries), as they now adhere to the same principles and follow a set of well-defined guidelines.","Register your Azure clients the proper way","2024-02-19T00:00:00.000Z",{"src":212},"/images/apple-di.webp",{"label":214},"Development",[216,217,218],"Azure","Azure SDK",".NET","Picture of \u003Ca href=\"https://unsplash.com/fr/@sarabakhshi\">Sara Bakhshi\u003C/a> on \u003Ca href=\"https://unsplash.com/fr/photos/pomme-fruit-avec-des-seringues-en-plastique-MfnX4XtGnvU\">Unsplash\u003C/a>",{"type":221,"children":222,"toc":3286},"root",[223,242,261,266,285,290,297,311,316,331,732,752,1190,1229,1235,1249,1529,1534,1559,1565,1577,1847,1860,2286,2297,2311,2317,2330,2335,2578,2583,2753,2759,2781,2825,3241,3253,3259,3275,3280],{"type":224,"tag":225,"props":226,"children":227},"element","p",{},[228,231,240],{"type":229,"value":230},"text","I love how the Azure SDKs have evolved over the years. In the past, there was no consistency between the various Azure SDKs. However, that's not longer the case (at least for most Azure libraries), as they now adhere to the same principles and follow a set of well-defined ",{"type":224,"tag":232,"props":233,"children":237},"a",{"href":234,"rel":235},"https://azure.github.io/azure-sdk/general_introduction.html",[236],"nofollow",[238],{"type":229,"value":239},"guidelines",{"type":229,"value":241},".",{"type":224,"tag":243,"props":244,"children":246},"callout",{"icon":245},"i-heroicons-light-bulb",[247],{"type":224,"tag":225,"props":248,"children":249},{},[250,252,259],{"type":229,"value":251},"You can learn more about these guidelines and how the Azure .NET SDKs work in this ",{"type":224,"tag":232,"props":253,"children":256},{"href":254,"rel":255},"https://youtu.be/v36NXLU3TLY?si=L8e1ic898kDCisJ7",[236],[257],{"type":229,"value":258},"video",{"type":229,"value":260}," from 2021 which is I think still relevant today.",{"type":224,"tag":225,"props":262,"children":263},{},[264],{"type":229,"value":265},"Having consistency between libraries, it's easier to handle things like authentication and dependency injection consistently when you are using multiple Azure SDKs in your project.",{"type":224,"tag":225,"props":267,"children":268},{},[269,271,283],{"type":229,"value":270},"One aspect often overlooked by people using Azure SDKs is the use of ",{"type":224,"tag":232,"props":272,"children":275},{"href":273,"rel":274},"https://www.nuget.org/packages/Microsoft.Extensions.Azure",[236],[276],{"type":224,"tag":277,"props":278,"children":280},"code",{"className":279},[],[281],{"type":229,"value":282},"Microsoft.Extensions.Azure",{"type":229,"value":284},". This package facilitates registering and configuring the service clients for interacting with Azure APIs.",{"type":224,"tag":225,"props":286,"children":287},{},[288],{"type":229,"value":289},"Let's see why using this package could be beneficial for your project.",{"type":224,"tag":291,"props":292,"children":294},"h2",{"id":293},"avoid-making-mistakes-when-registering-service-clients",[295],{"type":229,"value":296},"Avoid making mistakes when registering service clients",{"type":224,"tag":225,"props":298,"children":299},{},[300,302,309],{"type":229,"value":301},"It's mentioned in the ",{"type":224,"tag":232,"props":303,"children":306},{"href":304,"rel":305},"https://learn.microsoft.com/en-us/dotnet/azure/sdk/dependency-injection?view=azure-dotnet&tabs=web-app-builder",[236],[307],{"type":229,"value":308},"documentation",{"type":229,"value":310}," to use this package for dependency injection with the Azure SDK for .NET. Still, many people don't read the documentation and manually register the Azure service clients.",{"type":224,"tag":225,"props":312,"children":313},{},[314],{"type":229,"value":315},"It's not a problem in itself if you know what you are doing. Otherwise,",{"type":224,"tag":317,"props":318,"children":319},"ul",{},[320,326],{"type":224,"tag":321,"props":322,"children":323},"li",{},[324],{"type":229,"value":325},"you might choose the wrong lifetime for the Azure service clients, they must be singleton",{"type":224,"tag":321,"props":327,"children":328},{},[329],{"type":229,"value":330},"you may forget to register a dependency that is needed for your use of the SDK",{"type":224,"tag":332,"props":333,"children":337},"pre",{"className":334,"code":335,"language":336,"meta":207,"style":207},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","using Azure.Identity;\nusing DIWithAzureSDK;\nusing Microsoft.Extensions.Azure;\n\nvar builder = Host.CreateApplicationBuilder(args);\nbuilder.Services.AddHostedService\u003CWorker>();\nbuilder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddBlobServiceClient(new Uri(\"https://stdiwithazuresdk.blob.core.windows.net/\"));\n    clientBuilder.UseCredential(new DefaultAzureCredential());\n});\n\nvar host = builder.Build();\nhost.Run();\n","csharp",[338],{"type":224,"tag":277,"props":339,"children":340},{"__ignoreMap":207},[341,374,391,425,435,485,527,566,575,627,658,667,675,710],{"type":224,"tag":342,"props":343,"children":346},"span",{"class":344,"line":345},"line",1,[347,353,359,364,369],{"type":224,"tag":342,"props":348,"children":350},{"style":349},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[351],{"type":229,"value":352},"using",{"type":224,"tag":342,"props":354,"children":356},{"style":355},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[357],{"type":229,"value":358}," Azure",{"type":224,"tag":342,"props":360,"children":362},{"style":361},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[363],{"type":229,"value":241},{"type":224,"tag":342,"props":365,"children":366},{"style":355},[367],{"type":229,"value":368},"Identity",{"type":224,"tag":342,"props":370,"children":371},{"style":361},[372],{"type":229,"value":373},";\n",{"type":224,"tag":342,"props":375,"children":377},{"class":344,"line":376},2,[378,382,387],{"type":224,"tag":342,"props":379,"children":380},{"style":349},[381],{"type":229,"value":352},{"type":224,"tag":342,"props":383,"children":384},{"style":355},[385],{"type":229,"value":386}," DIWithAzureSDK",{"type":224,"tag":342,"props":388,"children":389},{"style":361},[390],{"type":229,"value":373},{"type":224,"tag":342,"props":392,"children":394},{"class":344,"line":393},3,[395,399,404,408,413,417,421],{"type":224,"tag":342,"props":396,"children":397},{"style":349},[398],{"type":229,"value":352},{"type":224,"tag":342,"props":400,"children":401},{"style":355},[402],{"type":229,"value":403}," Microsoft",{"type":224,"tag":342,"props":405,"children":406},{"style":361},[407],{"type":229,"value":241},{"type":224,"tag":342,"props":409,"children":410},{"style":355},[411],{"type":229,"value":412},"Extensions",{"type":224,"tag":342,"props":414,"children":415},{"style":361},[416],{"type":229,"value":241},{"type":224,"tag":342,"props":418,"children":419},{"style":355},[420],{"type":229,"value":216},{"type":224,"tag":342,"props":422,"children":423},{"style":361},[424],{"type":229,"value":373},{"type":224,"tag":342,"props":426,"children":428},{"class":344,"line":427},4,[429],{"type":224,"tag":342,"props":430,"children":432},{"emptyLinePlaceholder":431},true,[433],{"type":229,"value":434},"\n",{"type":224,"tag":342,"props":436,"children":438},{"class":344,"line":437},5,[439,445,450,455,460,464,470,475,480],{"type":224,"tag":342,"props":440,"children":442},{"style":441},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[443],{"type":229,"value":444},"var",{"type":224,"tag":342,"props":446,"children":447},{"style":441},[448],{"type":229,"value":449}," builder",{"type":224,"tag":342,"props":451,"children":452},{"style":361},[453],{"type":229,"value":454}," =",{"type":224,"tag":342,"props":456,"children":457},{"style":355},[458],{"type":229,"value":459}," Host",{"type":224,"tag":342,"props":461,"children":462},{"style":361},[463],{"type":229,"value":241},{"type":224,"tag":342,"props":465,"children":467},{"style":466},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[468],{"type":229,"value":469},"CreateApplicationBuilder",{"type":224,"tag":342,"props":471,"children":472},{"style":361},[473],{"type":229,"value":474},"(",{"type":224,"tag":342,"props":476,"children":477},{"style":355},[478],{"type":229,"value":479},"args",{"type":224,"tag":342,"props":481,"children":482},{"style":361},[483],{"type":229,"value":484},");\n",{"type":224,"tag":342,"props":486,"children":488},{"class":344,"line":487},6,[489,494,498,503,507,512,517,522],{"type":224,"tag":342,"props":490,"children":491},{"style":355},[492],{"type":229,"value":493},"builder",{"type":224,"tag":342,"props":495,"children":496},{"style":361},[497],{"type":229,"value":241},{"type":224,"tag":342,"props":499,"children":500},{"style":355},[501],{"type":229,"value":502},"Services",{"type":224,"tag":342,"props":504,"children":505},{"style":361},[506],{"type":229,"value":241},{"type":224,"tag":342,"props":508,"children":509},{"style":466},[510],{"type":229,"value":511},"AddHostedService",{"type":224,"tag":342,"props":513,"children":514},{"style":361},[515],{"type":229,"value":516},"\u003C",{"type":224,"tag":342,"props":518,"children":519},{"style":441},[520],{"type":229,"value":521},"Worker",{"type":224,"tag":342,"props":523,"children":524},{"style":361},[525],{"type":229,"value":526},">();\n",{"type":224,"tag":342,"props":528,"children":530},{"class":344,"line":529},7,[531,535,539,543,547,552,556,561],{"type":224,"tag":342,"props":532,"children":533},{"style":355},[534],{"type":229,"value":493},{"type":224,"tag":342,"props":536,"children":537},{"style":361},[538],{"type":229,"value":241},{"type":224,"tag":342,"props":540,"children":541},{"style":355},[542],{"type":229,"value":502},{"type":224,"tag":342,"props":544,"children":545},{"style":361},[546],{"type":229,"value":241},{"type":224,"tag":342,"props":548,"children":549},{"style":466},[550],{"type":229,"value":551},"AddAzureClients",{"type":224,"tag":342,"props":553,"children":554},{"style":361},[555],{"type":229,"value":474},{"type":224,"tag":342,"props":557,"children":558},{"style":441},[559],{"type":229,"value":560},"clientBuilder",{"type":224,"tag":342,"props":562,"children":563},{"style":361},[564],{"type":229,"value":565}," =>\n",{"type":224,"tag":342,"props":567,"children":569},{"class":344,"line":568},8,[570],{"type":224,"tag":342,"props":571,"children":572},{"style":361},[573],{"type":229,"value":574},"{\n",{"type":224,"tag":342,"props":576,"children":578},{"class":344,"line":577},9,[579,584,588,593,598,603,607,612,618,622],{"type":224,"tag":342,"props":580,"children":581},{"style":355},[582],{"type":229,"value":583},"    clientBuilder",{"type":224,"tag":342,"props":585,"children":586},{"style":361},[587],{"type":229,"value":241},{"type":224,"tag":342,"props":589,"children":590},{"style":466},[591],{"type":229,"value":592},"AddBlobServiceClient",{"type":224,"tag":342,"props":594,"children":595},{"style":361},[596],{"type":229,"value":597},"(new",{"type":224,"tag":342,"props":599,"children":600},{"style":441},[601],{"type":229,"value":602}," Uri",{"type":224,"tag":342,"props":604,"children":605},{"style":361},[606],{"type":229,"value":474},{"type":224,"tag":342,"props":608,"children":609},{"style":361},[610],{"type":229,"value":611},"\"",{"type":224,"tag":342,"props":613,"children":615},{"style":614},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[616],{"type":229,"value":617},"https://stdiwithazuresdk.blob.core.windows.net/",{"type":224,"tag":342,"props":619,"children":620},{"style":361},[621],{"type":229,"value":611},{"type":224,"tag":342,"props":623,"children":624},{"style":361},[625],{"type":229,"value":626},"));\n",{"type":224,"tag":342,"props":628,"children":630},{"class":344,"line":629},10,[631,635,639,644,648,653],{"type":224,"tag":342,"props":632,"children":633},{"style":355},[634],{"type":229,"value":583},{"type":224,"tag":342,"props":636,"children":637},{"style":361},[638],{"type":229,"value":241},{"type":224,"tag":342,"props":640,"children":641},{"style":466},[642],{"type":229,"value":643},"UseCredential",{"type":224,"tag":342,"props":645,"children":646},{"style":361},[647],{"type":229,"value":597},{"type":224,"tag":342,"props":649,"children":650},{"style":441},[651],{"type":229,"value":652}," DefaultAzureCredential",{"type":224,"tag":342,"props":654,"children":655},{"style":361},[656],{"type":229,"value":657},"());\n",{"type":224,"tag":342,"props":659,"children":661},{"class":344,"line":660},11,[662],{"type":224,"tag":342,"props":663,"children":664},{"style":361},[665],{"type":229,"value":666},"});\n",{"type":224,"tag":342,"props":668,"children":670},{"class":344,"line":669},12,[671],{"type":224,"tag":342,"props":672,"children":673},{"emptyLinePlaceholder":431},[674],{"type":229,"value":434},{"type":224,"tag":342,"props":676,"children":678},{"class":344,"line":677},13,[679,683,688,692,696,700,705],{"type":224,"tag":342,"props":680,"children":681},{"style":441},[682],{"type":229,"value":444},{"type":224,"tag":342,"props":684,"children":685},{"style":441},[686],{"type":229,"value":687}," host",{"type":224,"tag":342,"props":689,"children":690},{"style":361},[691],{"type":229,"value":454},{"type":224,"tag":342,"props":693,"children":694},{"style":355},[695],{"type":229,"value":449},{"type":224,"tag":342,"props":697,"children":698},{"style":361},[699],{"type":229,"value":241},{"type":224,"tag":342,"props":701,"children":702},{"style":466},[703],{"type":229,"value":704},"Build",{"type":224,"tag":342,"props":706,"children":707},{"style":361},[708],{"type":229,"value":709},"();\n",{"type":224,"tag":342,"props":711,"children":713},{"class":344,"line":712},14,[714,719,723,728],{"type":224,"tag":342,"props":715,"children":716},{"style":355},[717],{"type":229,"value":718},"host",{"type":224,"tag":342,"props":720,"children":721},{"style":361},[722],{"type":229,"value":241},{"type":224,"tag":342,"props":724,"children":725},{"style":466},[726],{"type":229,"value":727},"Run",{"type":224,"tag":342,"props":729,"children":730},{"style":361},[731],{"type":229,"value":709},{"type":224,"tag":225,"props":733,"children":734},{},[735,737,742,744,750],{"type":229,"value":736},"In this sample, the ",{"type":224,"tag":277,"props":738,"children":740},{"className":739},[],[741],{"type":229,"value":592},{"type":229,"value":743}," handles the registration of all dependencies for us so that the ",{"type":224,"tag":277,"props":745,"children":747},{"className":746},[],[748],{"type":229,"value":749},"BlobServiceClient",{"type":229,"value":751}," can then be injected directly where needed.",{"type":224,"tag":332,"props":753,"children":755},{"className":334,"code":754,"language":336,"meta":207,"style":207},"public class Worker : BackgroundService\n{\n    private readonly ILogger\u003CWorker> _logger;\n    private readonly BlobServiceClient _blobServiceClient;\n\n    public Worker(ILogger\u003CWorker> logger, BlobServiceClient blobServiceClient)\n    {\n        _logger = logger;\n        _blobServiceClient = blobServiceClient;\n    }\n\n    protected override async Task ExecuteAsync(CancellationToken stoppingToken)\n    {\n        await foreach (var blobContainer in _blobServiceClient.GetBlobContainersAsync(cancellationToken: stoppingToken))\n        {\n            _logger.LogInformation(blobContainer.Name);\n        }\n    }\n}\n",[756],{"type":224,"tag":277,"props":757,"children":758},{"__ignoreMap":207},[759,788,795,835,860,867,924,932,953,973,981,988,1034,1041,1110,1119,1164,1173,1181],{"type":224,"tag":342,"props":760,"children":761},{"class":344,"line":345},[762,768,773,778,783],{"type":224,"tag":342,"props":763,"children":765},{"style":764},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[766],{"type":229,"value":767},"public",{"type":224,"tag":342,"props":769,"children":770},{"style":441},[771],{"type":229,"value":772}," class",{"type":224,"tag":342,"props":774,"children":775},{"style":441},[776],{"type":229,"value":777}," Worker",{"type":224,"tag":342,"props":779,"children":780},{"style":361},[781],{"type":229,"value":782}," :",{"type":224,"tag":342,"props":784,"children":785},{"style":441},[786],{"type":229,"value":787}," BackgroundService\n",{"type":224,"tag":342,"props":789,"children":790},{"class":344,"line":376},[791],{"type":224,"tag":342,"props":792,"children":793},{"style":361},[794],{"type":229,"value":574},{"type":224,"tag":342,"props":796,"children":797},{"class":344,"line":393},[798,803,808,813,817,821,826,831],{"type":224,"tag":342,"props":799,"children":800},{"style":764},[801],{"type":229,"value":802},"    private",{"type":224,"tag":342,"props":804,"children":805},{"style":764},[806],{"type":229,"value":807}," readonly",{"type":224,"tag":342,"props":809,"children":810},{"style":441},[811],{"type":229,"value":812}," ILogger",{"type":224,"tag":342,"props":814,"children":815},{"style":361},[816],{"type":229,"value":516},{"type":224,"tag":342,"props":818,"children":819},{"style":441},[820],{"type":229,"value":521},{"type":224,"tag":342,"props":822,"children":823},{"style":361},[824],{"type":229,"value":825},">",{"type":224,"tag":342,"props":827,"children":828},{"style":441},[829],{"type":229,"value":830}," _logger",{"type":224,"tag":342,"props":832,"children":833},{"style":361},[834],{"type":229,"value":373},{"type":224,"tag":342,"props":836,"children":837},{"class":344,"line":427},[838,842,846,851,856],{"type":224,"tag":342,"props":839,"children":840},{"style":764},[841],{"type":229,"value":802},{"type":224,"tag":342,"props":843,"children":844},{"style":764},[845],{"type":229,"value":807},{"type":224,"tag":342,"props":847,"children":848},{"style":441},[849],{"type":229,"value":850}," BlobServiceClient",{"type":224,"tag":342,"props":852,"children":853},{"style":441},[854],{"type":229,"value":855}," _blobServiceClient",{"type":224,"tag":342,"props":857,"children":858},{"style":361},[859],{"type":229,"value":373},{"type":224,"tag":342,"props":861,"children":862},{"class":344,"line":437},[863],{"type":224,"tag":342,"props":864,"children":865},{"emptyLinePlaceholder":431},[866],{"type":229,"value":434},{"type":224,"tag":342,"props":868,"children":869},{"class":344,"line":487},[870,875,879,883,888,892,896,900,905,910,914,919],{"type":224,"tag":342,"props":871,"children":872},{"style":764},[873],{"type":229,"value":874},"    public",{"type":224,"tag":342,"props":876,"children":877},{"style":466},[878],{"type":229,"value":777},{"type":224,"tag":342,"props":880,"children":881},{"style":361},[882],{"type":229,"value":474},{"type":224,"tag":342,"props":884,"children":885},{"style":441},[886],{"type":229,"value":887},"ILogger",{"type":224,"tag":342,"props":889,"children":890},{"style":361},[891],{"type":229,"value":516},{"type":224,"tag":342,"props":893,"children":894},{"style":441},[895],{"type":229,"value":521},{"type":224,"tag":342,"props":897,"children":898},{"style":361},[899],{"type":229,"value":825},{"type":224,"tag":342,"props":901,"children":902},{"style":441},[903],{"type":229,"value":904}," logger",{"type":224,"tag":342,"props":906,"children":907},{"style":361},[908],{"type":229,"value":909},",",{"type":224,"tag":342,"props":911,"children":912},{"style":441},[913],{"type":229,"value":850},{"type":224,"tag":342,"props":915,"children":916},{"style":441},[917],{"type":229,"value":918}," blobServiceClient",{"type":224,"tag":342,"props":920,"children":921},{"style":361},[922],{"type":229,"value":923},")\n",{"type":224,"tag":342,"props":925,"children":926},{"class":344,"line":529},[927],{"type":224,"tag":342,"props":928,"children":929},{"style":361},[930],{"type":229,"value":931},"    {\n",{"type":224,"tag":342,"props":933,"children":934},{"class":344,"line":568},[935,940,945,949],{"type":224,"tag":342,"props":936,"children":937},{"style":355},[938],{"type":229,"value":939},"        _logger ",{"type":224,"tag":342,"props":941,"children":942},{"style":361},[943],{"type":229,"value":944},"=",{"type":224,"tag":342,"props":946,"children":947},{"style":355},[948],{"type":229,"value":904},{"type":224,"tag":342,"props":950,"children":951},{"style":361},[952],{"type":229,"value":373},{"type":224,"tag":342,"props":954,"children":955},{"class":344,"line":577},[956,961,965,969],{"type":224,"tag":342,"props":957,"children":958},{"style":355},[959],{"type":229,"value":960},"        _blobServiceClient ",{"type":224,"tag":342,"props":962,"children":963},{"style":361},[964],{"type":229,"value":944},{"type":224,"tag":342,"props":966,"children":967},{"style":355},[968],{"type":229,"value":918},{"type":224,"tag":342,"props":970,"children":971},{"style":361},[972],{"type":229,"value":373},{"type":224,"tag":342,"props":974,"children":975},{"class":344,"line":629},[976],{"type":224,"tag":342,"props":977,"children":978},{"style":361},[979],{"type":229,"value":980},"    }\n",{"type":224,"tag":342,"props":982,"children":983},{"class":344,"line":660},[984],{"type":224,"tag":342,"props":985,"children":986},{"emptyLinePlaceholder":431},[987],{"type":229,"value":434},{"type":224,"tag":342,"props":989,"children":990},{"class":344,"line":669},[991,996,1001,1006,1011,1016,1020,1025,1030],{"type":224,"tag":342,"props":992,"children":993},{"style":764},[994],{"type":229,"value":995},"    protected",{"type":224,"tag":342,"props":997,"children":998},{"style":764},[999],{"type":229,"value":1000}," override",{"type":224,"tag":342,"props":1002,"children":1003},{"style":764},[1004],{"type":229,"value":1005}," async",{"type":224,"tag":342,"props":1007,"children":1008},{"style":441},[1009],{"type":229,"value":1010}," Task",{"type":224,"tag":342,"props":1012,"children":1013},{"style":466},[1014],{"type":229,"value":1015}," ExecuteAsync",{"type":224,"tag":342,"props":1017,"children":1018},{"style":361},[1019],{"type":229,"value":474},{"type":224,"tag":342,"props":1021,"children":1022},{"style":441},[1023],{"type":229,"value":1024},"CancellationToken",{"type":224,"tag":342,"props":1026,"children":1027},{"style":441},[1028],{"type":229,"value":1029}," stoppingToken",{"type":224,"tag":342,"props":1031,"children":1032},{"style":361},[1033],{"type":229,"value":923},{"type":224,"tag":342,"props":1035,"children":1036},{"class":344,"line":677},[1037],{"type":224,"tag":342,"props":1038,"children":1039},{"style":361},[1040],{"type":229,"value":931},{"type":224,"tag":342,"props":1042,"children":1043},{"class":344,"line":712},[1044,1049,1055,1060,1064,1069,1074,1078,1082,1087,1091,1096,1101,1105],{"type":224,"tag":342,"props":1045,"children":1046},{"style":361},[1047],{"type":229,"value":1048},"        await",{"type":224,"tag":342,"props":1050,"children":1052},{"style":1051},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF;--shiki-light-font-style:italic;--shiki-default-font-style:italic;--shiki-dark-font-style:italic",[1053],{"type":229,"value":1054}," foreach",{"type":224,"tag":342,"props":1056,"children":1057},{"style":361},[1058],{"type":229,"value":1059}," (",{"type":224,"tag":342,"props":1061,"children":1062},{"style":441},[1063],{"type":229,"value":444},{"type":224,"tag":342,"props":1065,"children":1066},{"style":441},[1067],{"type":229,"value":1068}," blobContainer",{"type":224,"tag":342,"props":1070,"children":1071},{"style":1051},[1072],{"type":229,"value":1073}," in",{"type":224,"tag":342,"props":1075,"children":1076},{"style":355},[1077],{"type":229,"value":855},{"type":224,"tag":342,"props":1079,"children":1080},{"style":361},[1081],{"type":229,"value":241},{"type":224,"tag":342,"props":1083,"children":1084},{"style":466},[1085],{"type":229,"value":1086},"GetBlobContainersAsync",{"type":224,"tag":342,"props":1088,"children":1089},{"style":361},[1090],{"type":229,"value":474},{"type":224,"tag":342,"props":1092,"children":1093},{"style":441},[1094],{"type":229,"value":1095},"cancellationToken",{"type":224,"tag":342,"props":1097,"children":1098},{"style":361},[1099],{"type":229,"value":1100},":",{"type":224,"tag":342,"props":1102,"children":1103},{"style":355},[1104],{"type":229,"value":1029},{"type":224,"tag":342,"props":1106,"children":1107},{"style":361},[1108],{"type":229,"value":1109},"))\n",{"type":224,"tag":342,"props":1111,"children":1113},{"class":344,"line":1112},15,[1114],{"type":224,"tag":342,"props":1115,"children":1116},{"style":361},[1117],{"type":229,"value":1118},"        {\n",{"type":224,"tag":342,"props":1120,"children":1122},{"class":344,"line":1121},16,[1123,1128,1132,1137,1141,1146,1150,1155,1160],{"type":224,"tag":342,"props":1124,"children":1125},{"style":355},[1126],{"type":229,"value":1127},"            _logger",{"type":224,"tag":342,"props":1129,"children":1130},{"style":361},[1131],{"type":229,"value":241},{"type":224,"tag":342,"props":1133,"children":1134},{"style":466},[1135],{"type":229,"value":1136},"LogInformation",{"type":224,"tag":342,"props":1138,"children":1139},{"style":361},[1140],{"type":229,"value":474},{"type":224,"tag":342,"props":1142,"children":1143},{"style":355},[1144],{"type":229,"value":1145},"blobContainer",{"type":224,"tag":342,"props":1147,"children":1148},{"style":361},[1149],{"type":229,"value":241},{"type":224,"tag":342,"props":1151,"children":1152},{"style":355},[1153],{"type":229,"value":1154},"Name",{"type":224,"tag":342,"props":1156,"children":1157},{"style":361},[1158],{"type":229,"value":1159},")",{"type":224,"tag":342,"props":1161,"children":1162},{"style":355},[1163],{"type":229,"value":373},{"type":224,"tag":342,"props":1165,"children":1167},{"class":344,"line":1166},17,[1168],{"type":224,"tag":342,"props":1169,"children":1170},{"style":361},[1171],{"type":229,"value":1172},"        }\n",{"type":224,"tag":342,"props":1174,"children":1176},{"class":344,"line":1175},18,[1177],{"type":224,"tag":342,"props":1178,"children":1179},{"style":361},[1180],{"type":229,"value":980},{"type":224,"tag":342,"props":1182,"children":1184},{"class":344,"line":1183},19,[1185],{"type":224,"tag":342,"props":1186,"children":1187},{"style":361},[1188],{"type":229,"value":1189},"}\n",{"type":224,"tag":243,"props":1191,"children":1193},{"icon":1192},"i-heroicons-chat-bubble-left-20-solid",[1194],{"type":224,"tag":225,"props":1195,"children":1196},{},[1197,1199,1204,1206,1212,1214,1220,1222,1227],{"type":229,"value":1198},"You may find it convenient to configure the dependency injection for all Azure service clients in a central place with the ",{"type":224,"tag":277,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":229,"value":551},{"type":229,"value":1205}," method. When applications become larger with different ",{"type":224,"tag":277,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":229,"value":1211},"csproj,",{"type":229,"value":1213}," I often prefer to separate service registration by business domain/module so having everything in a central place does not always suit my needs. That's not a problem, as the internal methods of the library make use of the ",{"type":224,"tag":277,"props":1215,"children":1217},{"className":1216},[],[1218],{"type":229,"value":1219},"TryAddd",{"type":229,"value":1221}," methods for registering services, I can call ",{"type":224,"tag":277,"props":1223,"children":1225},{"className":1224},[],[1226],{"type":229,"value":551},{"type":229,"value":1228}," in multiple places with only the services I want to register.",{"type":224,"tag":291,"props":1230,"children":1232},{"id":1231},"easily-manage-the-authentication-to-azure-services",[1233],{"type":229,"value":1234},"Easily manage the authentication to Azure services",{"type":224,"tag":225,"props":1236,"children":1237},{},[1238,1240,1247],{"type":229,"value":1239},"All the SDKs use the ",{"type":224,"tag":232,"props":1241,"children":1244},{"href":1242,"rel":1243},"https://www.nuget.org/packages/Azure.Identity",[236],[1245],{"type":229,"value":1246},"Azure.Identity",{"type":229,"value":1248}," package to authenticate to Azure. There are different authentication methods available and you can easily specify which one to use with each client. Additionally, you can define a default authentication method for all clients, as demonstrated in the previous example.",{"type":224,"tag":332,"props":1250,"children":1252},{"className":334,"code":1251,"language":336,"meta":207,"style":207},"builder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddServiceBusClient(\"https://sb-diwithazuresdk.servicebus.windows.net/\")\n        .WithCredential(new ManagedIdentityCredential());\n    \n    clientBuilder.AddTableServiceClient(new Uri(\"https://stdiwithazuresdk.table.core.windows.net\"))\n        .WithCredential(new EnvironmentCredential());\n\n    clientBuilder.AddBlobServiceClient(new Uri(\"https://stdiwithazuresdk.blob.core.windows.net/\"));\n    \n    clientBuilder.UseCredential(new DefaultAzureCredential());\n});\n",[1253],{"type":224,"tag":277,"props":1254,"children":1255},{"__ignoreMap":207},[1256,1291,1298,1335,1361,1369,1414,1438,1445,1488,1495,1522],{"type":224,"tag":342,"props":1257,"children":1258},{"class":344,"line":345},[1259,1263,1267,1271,1275,1279,1283,1287],{"type":224,"tag":342,"props":1260,"children":1261},{"style":355},[1262],{"type":229,"value":493},{"type":224,"tag":342,"props":1264,"children":1265},{"style":361},[1266],{"type":229,"value":241},{"type":224,"tag":342,"props":1268,"children":1269},{"style":355},[1270],{"type":229,"value":502},{"type":224,"tag":342,"props":1272,"children":1273},{"style":361},[1274],{"type":229,"value":241},{"type":224,"tag":342,"props":1276,"children":1277},{"style":466},[1278],{"type":229,"value":551},{"type":224,"tag":342,"props":1280,"children":1281},{"style":361},[1282],{"type":229,"value":474},{"type":224,"tag":342,"props":1284,"children":1285},{"style":441},[1286],{"type":229,"value":560},{"type":224,"tag":342,"props":1288,"children":1289},{"style":361},[1290],{"type":229,"value":565},{"type":224,"tag":342,"props":1292,"children":1293},{"class":344,"line":376},[1294],{"type":224,"tag":342,"props":1295,"children":1296},{"style":361},[1297],{"type":229,"value":574},{"type":224,"tag":342,"props":1299,"children":1300},{"class":344,"line":393},[1301,1305,1309,1314,1318,1322,1327,1331],{"type":224,"tag":342,"props":1302,"children":1303},{"style":355},[1304],{"type":229,"value":583},{"type":224,"tag":342,"props":1306,"children":1307},{"style":361},[1308],{"type":229,"value":241},{"type":224,"tag":342,"props":1310,"children":1311},{"style":466},[1312],{"type":229,"value":1313},"AddServiceBusClient",{"type":224,"tag":342,"props":1315,"children":1316},{"style":361},[1317],{"type":229,"value":474},{"type":224,"tag":342,"props":1319,"children":1320},{"style":361},[1321],{"type":229,"value":611},{"type":224,"tag":342,"props":1323,"children":1324},{"style":614},[1325],{"type":229,"value":1326},"https://sb-diwithazuresdk.servicebus.windows.net/",{"type":224,"tag":342,"props":1328,"children":1329},{"style":361},[1330],{"type":229,"value":611},{"type":224,"tag":342,"props":1332,"children":1333},{"style":361},[1334],{"type":229,"value":923},{"type":224,"tag":342,"props":1336,"children":1337},{"class":344,"line":427},[1338,1343,1348,1352,1357],{"type":224,"tag":342,"props":1339,"children":1340},{"style":361},[1341],{"type":229,"value":1342},"        .",{"type":224,"tag":342,"props":1344,"children":1345},{"style":466},[1346],{"type":229,"value":1347},"WithCredential",{"type":224,"tag":342,"props":1349,"children":1350},{"style":361},[1351],{"type":229,"value":597},{"type":224,"tag":342,"props":1353,"children":1354},{"style":441},[1355],{"type":229,"value":1356}," ManagedIdentityCredential",{"type":224,"tag":342,"props":1358,"children":1359},{"style":361},[1360],{"type":229,"value":657},{"type":224,"tag":342,"props":1362,"children":1363},{"class":344,"line":437},[1364],{"type":224,"tag":342,"props":1365,"children":1366},{"style":355},[1367],{"type":229,"value":1368},"    \n",{"type":224,"tag":342,"props":1370,"children":1371},{"class":344,"line":487},[1372,1376,1380,1385,1389,1393,1397,1401,1406,1410],{"type":224,"tag":342,"props":1373,"children":1374},{"style":355},[1375],{"type":229,"value":583},{"type":224,"tag":342,"props":1377,"children":1378},{"style":361},[1379],{"type":229,"value":241},{"type":224,"tag":342,"props":1381,"children":1382},{"style":466},[1383],{"type":229,"value":1384},"AddTableServiceClient",{"type":224,"tag":342,"props":1386,"children":1387},{"style":361},[1388],{"type":229,"value":597},{"type":224,"tag":342,"props":1390,"children":1391},{"style":441},[1392],{"type":229,"value":602},{"type":224,"tag":342,"props":1394,"children":1395},{"style":361},[1396],{"type":229,"value":474},{"type":224,"tag":342,"props":1398,"children":1399},{"style":361},[1400],{"type":229,"value":611},{"type":224,"tag":342,"props":1402,"children":1403},{"style":614},[1404],{"type":229,"value":1405},"https://stdiwithazuresdk.table.core.windows.net",{"type":224,"tag":342,"props":1407,"children":1408},{"style":361},[1409],{"type":229,"value":611},{"type":224,"tag":342,"props":1411,"children":1412},{"style":361},[1413],{"type":229,"value":1109},{"type":224,"tag":342,"props":1415,"children":1416},{"class":344,"line":529},[1417,1421,1425,1429,1434],{"type":224,"tag":342,"props":1418,"children":1419},{"style":361},[1420],{"type":229,"value":1342},{"type":224,"tag":342,"props":1422,"children":1423},{"style":466},[1424],{"type":229,"value":1347},{"type":224,"tag":342,"props":1426,"children":1427},{"style":361},[1428],{"type":229,"value":597},{"type":224,"tag":342,"props":1430,"children":1431},{"style":441},[1432],{"type":229,"value":1433}," EnvironmentCredential",{"type":224,"tag":342,"props":1435,"children":1436},{"style":361},[1437],{"type":229,"value":657},{"type":224,"tag":342,"props":1439,"children":1440},{"class":344,"line":568},[1441],{"type":224,"tag":342,"props":1442,"children":1443},{"emptyLinePlaceholder":431},[1444],{"type":229,"value":434},{"type":224,"tag":342,"props":1446,"children":1447},{"class":344,"line":577},[1448,1452,1456,1460,1464,1468,1472,1476,1480,1484],{"type":224,"tag":342,"props":1449,"children":1450},{"style":355},[1451],{"type":229,"value":583},{"type":224,"tag":342,"props":1453,"children":1454},{"style":361},[1455],{"type":229,"value":241},{"type":224,"tag":342,"props":1457,"children":1458},{"style":466},[1459],{"type":229,"value":592},{"type":224,"tag":342,"props":1461,"children":1462},{"style":361},[1463],{"type":229,"value":597},{"type":224,"tag":342,"props":1465,"children":1466},{"style":441},[1467],{"type":229,"value":602},{"type":224,"tag":342,"props":1469,"children":1470},{"style":361},[1471],{"type":229,"value":474},{"type":224,"tag":342,"props":1473,"children":1474},{"style":361},[1475],{"type":229,"value":611},{"type":224,"tag":342,"props":1477,"children":1478},{"style":614},[1479],{"type":229,"value":617},{"type":224,"tag":342,"props":1481,"children":1482},{"style":361},[1483],{"type":229,"value":611},{"type":224,"tag":342,"props":1485,"children":1486},{"style":361},[1487],{"type":229,"value":626},{"type":224,"tag":342,"props":1489,"children":1490},{"class":344,"line":629},[1491],{"type":224,"tag":342,"props":1492,"children":1493},{"style":355},[1494],{"type":229,"value":1368},{"type":224,"tag":342,"props":1496,"children":1497},{"class":344,"line":660},[1498,1502,1506,1510,1514,1518],{"type":224,"tag":342,"props":1499,"children":1500},{"style":355},[1501],{"type":229,"value":583},{"type":224,"tag":342,"props":1503,"children":1504},{"style":361},[1505],{"type":229,"value":241},{"type":224,"tag":342,"props":1507,"children":1508},{"style":466},[1509],{"type":229,"value":643},{"type":224,"tag":342,"props":1511,"children":1512},{"style":361},[1513],{"type":229,"value":597},{"type":224,"tag":342,"props":1515,"children":1516},{"style":441},[1517],{"type":229,"value":652},{"type":224,"tag":342,"props":1519,"children":1520},{"style":361},[1521],{"type":229,"value":657},{"type":224,"tag":342,"props":1523,"children":1524},{"class":344,"line":669},[1525],{"type":224,"tag":342,"props":1526,"children":1527},{"style":361},[1528],{"type":229,"value":666},{"type":224,"tag":225,"props":1530,"children":1531},{},[1532],{"type":229,"value":1533},"In the example above, we configured:",{"type":224,"tag":317,"props":1535,"children":1536},{},[1537,1542,1547],{"type":224,"tag":321,"props":1538,"children":1539},{},[1540],{"type":229,"value":1541},"the service bus client to use the managed identity of the application to obtain a valid token for the service bus",{"type":224,"tag":321,"props":1543,"children":1544},{},[1545],{"type":229,"value":1546},"the table client to use environment variables to obtain a valid token for the storage table",{"type":224,"tag":321,"props":1548,"children":1549},{},[1550,1552,1557],{"type":229,"value":1551},"the blob client without any credentials so that it will use the one that we configured by default (with the ",{"type":224,"tag":277,"props":1553,"children":1555},{"className":1554},[],[1556],{"type":229,"value":643},{"type":229,"value":1558}," method)",{"type":224,"tag":291,"props":1560,"children":1562},{"id":1561},"effortlessly-configure-the-azure-clients-options",[1563],{"type":229,"value":1564},"Effortlessly configure the Azure clients' options",{"type":224,"tag":225,"props":1566,"children":1567},{},[1568,1570,1575],{"type":229,"value":1569},"All Azure clients have options that can be effortlessly configured when registering them in the ",{"type":224,"tag":277,"props":1571,"children":1573},{"className":1572},[],[1574],{"type":229,"value":551},{"type":229,"value":1576}," method.",{"type":224,"tag":332,"props":1578,"children":1580},{"className":334,"code":1579,"language":336,"meta":207,"style":207},"builder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddBlobServiceClient(new Uri(\"https://stdiwithazuresdk.blob.core.windows.net/\"))\n        .WithCredential(new DefaultAzureCredential())\n        .ConfigureOptions(options =>\n        {\n            options.TrimBlobNameSlashes = true;\n            options.Retry.MaxRetries = 10;\n            options.Diagnostics.IsLoggingEnabled = false;\n        });\n});\n",[1581],{"type":224,"tag":277,"props":1582,"children":1583},{"__ignoreMap":207},[1584,1619,1626,1669,1693,1718,1725,1756,1794,1832,1840],{"type":224,"tag":342,"props":1585,"children":1586},{"class":344,"line":345},[1587,1591,1595,1599,1603,1607,1611,1615],{"type":224,"tag":342,"props":1588,"children":1589},{"style":355},[1590],{"type":229,"value":493},{"type":224,"tag":342,"props":1592,"children":1593},{"style":361},[1594],{"type":229,"value":241},{"type":224,"tag":342,"props":1596,"children":1597},{"style":355},[1598],{"type":229,"value":502},{"type":224,"tag":342,"props":1600,"children":1601},{"style":361},[1602],{"type":229,"value":241},{"type":224,"tag":342,"props":1604,"children":1605},{"style":466},[1606],{"type":229,"value":551},{"type":224,"tag":342,"props":1608,"children":1609},{"style":361},[1610],{"type":229,"value":474},{"type":224,"tag":342,"props":1612,"children":1613},{"style":441},[1614],{"type":229,"value":560},{"type":224,"tag":342,"props":1616,"children":1617},{"style":361},[1618],{"type":229,"value":565},{"type":224,"tag":342,"props":1620,"children":1621},{"class":344,"line":376},[1622],{"type":224,"tag":342,"props":1623,"children":1624},{"style":361},[1625],{"type":229,"value":574},{"type":224,"tag":342,"props":1627,"children":1628},{"class":344,"line":393},[1629,1633,1637,1641,1645,1649,1653,1657,1661,1665],{"type":224,"tag":342,"props":1630,"children":1631},{"style":355},[1632],{"type":229,"value":583},{"type":224,"tag":342,"props":1634,"children":1635},{"style":361},[1636],{"type":229,"value":241},{"type":224,"tag":342,"props":1638,"children":1639},{"style":466},[1640],{"type":229,"value":592},{"type":224,"tag":342,"props":1642,"children":1643},{"style":361},[1644],{"type":229,"value":597},{"type":224,"tag":342,"props":1646,"children":1647},{"style":441},[1648],{"type":229,"value":602},{"type":224,"tag":342,"props":1650,"children":1651},{"style":361},[1652],{"type":229,"value":474},{"type":224,"tag":342,"props":1654,"children":1655},{"style":361},[1656],{"type":229,"value":611},{"type":224,"tag":342,"props":1658,"children":1659},{"style":614},[1660],{"type":229,"value":617},{"type":224,"tag":342,"props":1662,"children":1663},{"style":361},[1664],{"type":229,"value":611},{"type":224,"tag":342,"props":1666,"children":1667},{"style":361},[1668],{"type":229,"value":1109},{"type":224,"tag":342,"props":1670,"children":1671},{"class":344,"line":427},[1672,1676,1680,1684,1688],{"type":224,"tag":342,"props":1673,"children":1674},{"style":361},[1675],{"type":229,"value":1342},{"type":224,"tag":342,"props":1677,"children":1678},{"style":466},[1679],{"type":229,"value":1347},{"type":224,"tag":342,"props":1681,"children":1682},{"style":361},[1683],{"type":229,"value":597},{"type":224,"tag":342,"props":1685,"children":1686},{"style":441},[1687],{"type":229,"value":652},{"type":224,"tag":342,"props":1689,"children":1690},{"style":361},[1691],{"type":229,"value":1692},"())\n",{"type":224,"tag":342,"props":1694,"children":1695},{"class":344,"line":437},[1696,1700,1705,1709,1714],{"type":224,"tag":342,"props":1697,"children":1698},{"style":361},[1699],{"type":229,"value":1342},{"type":224,"tag":342,"props":1701,"children":1702},{"style":466},[1703],{"type":229,"value":1704},"ConfigureOptions",{"type":224,"tag":342,"props":1706,"children":1707},{"style":361},[1708],{"type":229,"value":474},{"type":224,"tag":342,"props":1710,"children":1711},{"style":441},[1712],{"type":229,"value":1713},"options",{"type":224,"tag":342,"props":1715,"children":1716},{"style":361},[1717],{"type":229,"value":565},{"type":224,"tag":342,"props":1719,"children":1720},{"class":344,"line":487},[1721],{"type":224,"tag":342,"props":1722,"children":1723},{"style":361},[1724],{"type":229,"value":1118},{"type":224,"tag":342,"props":1726,"children":1727},{"class":344,"line":529},[1728,1733,1737,1742,1746,1752],{"type":224,"tag":342,"props":1729,"children":1730},{"style":355},[1731],{"type":229,"value":1732},"            options",{"type":224,"tag":342,"props":1734,"children":1735},{"style":361},[1736],{"type":229,"value":241},{"type":224,"tag":342,"props":1738,"children":1739},{"style":355},[1740],{"type":229,"value":1741},"TrimBlobNameSlashes ",{"type":224,"tag":342,"props":1743,"children":1744},{"style":361},[1745],{"type":229,"value":944},{"type":224,"tag":342,"props":1747,"children":1749},{"style":1748},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1750],{"type":229,"value":1751}," true",{"type":224,"tag":342,"props":1753,"children":1754},{"style":361},[1755],{"type":229,"value":373},{"type":224,"tag":342,"props":1757,"children":1758},{"class":344,"line":568},[1759,1763,1767,1772,1776,1781,1785,1790],{"type":224,"tag":342,"props":1760,"children":1761},{"style":355},[1762],{"type":229,"value":1732},{"type":224,"tag":342,"props":1764,"children":1765},{"style":361},[1766],{"type":229,"value":241},{"type":224,"tag":342,"props":1768,"children":1769},{"style":355},[1770],{"type":229,"value":1771},"Retry",{"type":224,"tag":342,"props":1773,"children":1774},{"style":361},[1775],{"type":229,"value":241},{"type":224,"tag":342,"props":1777,"children":1778},{"style":355},[1779],{"type":229,"value":1780},"MaxRetries ",{"type":224,"tag":342,"props":1782,"children":1783},{"style":361},[1784],{"type":229,"value":944},{"type":224,"tag":342,"props":1786,"children":1787},{"style":349},[1788],{"type":229,"value":1789}," 10",{"type":224,"tag":342,"props":1791,"children":1792},{"style":361},[1793],{"type":229,"value":373},{"type":224,"tag":342,"props":1795,"children":1796},{"class":344,"line":577},[1797,1801,1805,1810,1814,1819,1823,1828],{"type":224,"tag":342,"props":1798,"children":1799},{"style":355},[1800],{"type":229,"value":1732},{"type":224,"tag":342,"props":1802,"children":1803},{"style":361},[1804],{"type":229,"value":241},{"type":224,"tag":342,"props":1806,"children":1807},{"style":355},[1808],{"type":229,"value":1809},"Diagnostics",{"type":224,"tag":342,"props":1811,"children":1812},{"style":361},[1813],{"type":229,"value":241},{"type":224,"tag":342,"props":1815,"children":1816},{"style":355},[1817],{"type":229,"value":1818},"IsLoggingEnabled ",{"type":224,"tag":342,"props":1820,"children":1821},{"style":361},[1822],{"type":229,"value":944},{"type":224,"tag":342,"props":1824,"children":1825},{"style":1748},[1826],{"type":229,"value":1827}," false",{"type":224,"tag":342,"props":1829,"children":1830},{"style":361},[1831],{"type":229,"value":373},{"type":224,"tag":342,"props":1833,"children":1834},{"class":344,"line":629},[1835],{"type":224,"tag":342,"props":1836,"children":1837},{"style":361},[1838],{"type":229,"value":1839},"        });\n",{"type":224,"tag":342,"props":1841,"children":1842},{"class":344,"line":660},[1843],{"type":224,"tag":342,"props":1844,"children":1845},{"style":361},[1846],{"type":229,"value":666},{"type":224,"tag":225,"props":1848,"children":1849},{},[1850,1852,1858],{"type":229,"value":1851},"Some options are specific to the client (like the ",{"type":224,"tag":277,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":229,"value":1857},"TrimBlobNameSlashes",{"type":229,"value":1859}," here for Blob client). Others can be configured globally and overridden on a client if necessary.",{"type":224,"tag":332,"props":1861,"children":1863},{"className":334,"code":1862,"language":336,"meta":207,"style":207},"builder.Services.AddAzureClients(clientBuilder =>\n{\n   clientBuilder.AddBlobServiceClient(new Uri(\"https://stdiwithazuresdk.blob.core.windows.net/\"))\n        .WithCredential(new DefaultAzureCredential())\n        .ConfigureOptions(options =>\n        {\n            options.TrimBlobNameSlashes = true;\n            options.Retry.MaxRetries = 10;\n            options.Diagnostics.IsLoggingEnabled = false;\n        });\n    \n    clientBuilder.ConfigureDefaults(options =>\n    {\n        options.Retry.MaxRetries = 5;\n        options.Retry.Mode = RetryMode.Exponential;\n        options.Diagnostics.IsDistributedTracingEnabled = true;\n    });\n});\n",[1864],{"type":224,"tag":277,"props":1865,"children":1866},{"__ignoreMap":207},[1867,1902,1909,1953,1976,1999,2006,2033,2068,2103,2110,2117,2145,2152,2189,2235,2271,2279],{"type":224,"tag":342,"props":1868,"children":1869},{"class":344,"line":345},[1870,1874,1878,1882,1886,1890,1894,1898],{"type":224,"tag":342,"props":1871,"children":1872},{"style":355},[1873],{"type":229,"value":493},{"type":224,"tag":342,"props":1875,"children":1876},{"style":361},[1877],{"type":229,"value":241},{"type":224,"tag":342,"props":1879,"children":1880},{"style":355},[1881],{"type":229,"value":502},{"type":224,"tag":342,"props":1883,"children":1884},{"style":361},[1885],{"type":229,"value":241},{"type":224,"tag":342,"props":1887,"children":1888},{"style":466},[1889],{"type":229,"value":551},{"type":224,"tag":342,"props":1891,"children":1892},{"style":361},[1893],{"type":229,"value":474},{"type":224,"tag":342,"props":1895,"children":1896},{"style":441},[1897],{"type":229,"value":560},{"type":224,"tag":342,"props":1899,"children":1900},{"style":361},[1901],{"type":229,"value":565},{"type":224,"tag":342,"props":1903,"children":1904},{"class":344,"line":376},[1905],{"type":224,"tag":342,"props":1906,"children":1907},{"style":361},[1908],{"type":229,"value":574},{"type":224,"tag":342,"props":1910,"children":1911},{"class":344,"line":393},[1912,1917,1921,1925,1929,1933,1937,1941,1945,1949],{"type":224,"tag":342,"props":1913,"children":1914},{"style":355},[1915],{"type":229,"value":1916},"   clientBuilder",{"type":224,"tag":342,"props":1918,"children":1919},{"style":361},[1920],{"type":229,"value":241},{"type":224,"tag":342,"props":1922,"children":1923},{"style":466},[1924],{"type":229,"value":592},{"type":224,"tag":342,"props":1926,"children":1927},{"style":361},[1928],{"type":229,"value":597},{"type":224,"tag":342,"props":1930,"children":1931},{"style":441},[1932],{"type":229,"value":602},{"type":224,"tag":342,"props":1934,"children":1935},{"style":361},[1936],{"type":229,"value":474},{"type":224,"tag":342,"props":1938,"children":1939},{"style":361},[1940],{"type":229,"value":611},{"type":224,"tag":342,"props":1942,"children":1943},{"style":614},[1944],{"type":229,"value":617},{"type":224,"tag":342,"props":1946,"children":1947},{"style":361},[1948],{"type":229,"value":611},{"type":224,"tag":342,"props":1950,"children":1951},{"style":361},[1952],{"type":229,"value":1109},{"type":224,"tag":342,"props":1954,"children":1955},{"class":344,"line":427},[1956,1960,1964,1968,1972],{"type":224,"tag":342,"props":1957,"children":1958},{"style":361},[1959],{"type":229,"value":1342},{"type":224,"tag":342,"props":1961,"children":1962},{"style":466},[1963],{"type":229,"value":1347},{"type":224,"tag":342,"props":1965,"children":1966},{"style":361},[1967],{"type":229,"value":597},{"type":224,"tag":342,"props":1969,"children":1970},{"style":441},[1971],{"type":229,"value":652},{"type":224,"tag":342,"props":1973,"children":1974},{"style":361},[1975],{"type":229,"value":1692},{"type":224,"tag":342,"props":1977,"children":1978},{"class":344,"line":437},[1979,1983,1987,1991,1995],{"type":224,"tag":342,"props":1980,"children":1981},{"style":361},[1982],{"type":229,"value":1342},{"type":224,"tag":342,"props":1984,"children":1985},{"style":466},[1986],{"type":229,"value":1704},{"type":224,"tag":342,"props":1988,"children":1989},{"style":361},[1990],{"type":229,"value":474},{"type":224,"tag":342,"props":1992,"children":1993},{"style":441},[1994],{"type":229,"value":1713},{"type":224,"tag":342,"props":1996,"children":1997},{"style":361},[1998],{"type":229,"value":565},{"type":224,"tag":342,"props":2000,"children":2001},{"class":344,"line":487},[2002],{"type":224,"tag":342,"props":2003,"children":2004},{"style":361},[2005],{"type":229,"value":1118},{"type":224,"tag":342,"props":2007,"children":2008},{"class":344,"line":529},[2009,2013,2017,2021,2025,2029],{"type":224,"tag":342,"props":2010,"children":2011},{"style":355},[2012],{"type":229,"value":1732},{"type":224,"tag":342,"props":2014,"children":2015},{"style":361},[2016],{"type":229,"value":241},{"type":224,"tag":342,"props":2018,"children":2019},{"style":355},[2020],{"type":229,"value":1741},{"type":224,"tag":342,"props":2022,"children":2023},{"style":361},[2024],{"type":229,"value":944},{"type":224,"tag":342,"props":2026,"children":2027},{"style":1748},[2028],{"type":229,"value":1751},{"type":224,"tag":342,"props":2030,"children":2031},{"style":361},[2032],{"type":229,"value":373},{"type":224,"tag":342,"props":2034,"children":2035},{"class":344,"line":568},[2036,2040,2044,2048,2052,2056,2060,2064],{"type":224,"tag":342,"props":2037,"children":2038},{"style":355},[2039],{"type":229,"value":1732},{"type":224,"tag":342,"props":2041,"children":2042},{"style":361},[2043],{"type":229,"value":241},{"type":224,"tag":342,"props":2045,"children":2046},{"style":355},[2047],{"type":229,"value":1771},{"type":224,"tag":342,"props":2049,"children":2050},{"style":361},[2051],{"type":229,"value":241},{"type":224,"tag":342,"props":2053,"children":2054},{"style":355},[2055],{"type":229,"value":1780},{"type":224,"tag":342,"props":2057,"children":2058},{"style":361},[2059],{"type":229,"value":944},{"type":224,"tag":342,"props":2061,"children":2062},{"style":349},[2063],{"type":229,"value":1789},{"type":224,"tag":342,"props":2065,"children":2066},{"style":361},[2067],{"type":229,"value":373},{"type":224,"tag":342,"props":2069,"children":2070},{"class":344,"line":577},[2071,2075,2079,2083,2087,2091,2095,2099],{"type":224,"tag":342,"props":2072,"children":2073},{"style":355},[2074],{"type":229,"value":1732},{"type":224,"tag":342,"props":2076,"children":2077},{"style":361},[2078],{"type":229,"value":241},{"type":224,"tag":342,"props":2080,"children":2081},{"style":355},[2082],{"type":229,"value":1809},{"type":224,"tag":342,"props":2084,"children":2085},{"style":361},[2086],{"type":229,"value":241},{"type":224,"tag":342,"props":2088,"children":2089},{"style":355},[2090],{"type":229,"value":1818},{"type":224,"tag":342,"props":2092,"children":2093},{"style":361},[2094],{"type":229,"value":944},{"type":224,"tag":342,"props":2096,"children":2097},{"style":1748},[2098],{"type":229,"value":1827},{"type":224,"tag":342,"props":2100,"children":2101},{"style":361},[2102],{"type":229,"value":373},{"type":224,"tag":342,"props":2104,"children":2105},{"class":344,"line":629},[2106],{"type":224,"tag":342,"props":2107,"children":2108},{"style":361},[2109],{"type":229,"value":1839},{"type":224,"tag":342,"props":2111,"children":2112},{"class":344,"line":660},[2113],{"type":224,"tag":342,"props":2114,"children":2115},{"style":355},[2116],{"type":229,"value":1368},{"type":224,"tag":342,"props":2118,"children":2119},{"class":344,"line":669},[2120,2124,2128,2133,2137,2141],{"type":224,"tag":342,"props":2121,"children":2122},{"style":355},[2123],{"type":229,"value":583},{"type":224,"tag":342,"props":2125,"children":2126},{"style":361},[2127],{"type":229,"value":241},{"type":224,"tag":342,"props":2129,"children":2130},{"style":466},[2131],{"type":229,"value":2132},"ConfigureDefaults",{"type":224,"tag":342,"props":2134,"children":2135},{"style":361},[2136],{"type":229,"value":474},{"type":224,"tag":342,"props":2138,"children":2139},{"style":441},[2140],{"type":229,"value":1713},{"type":224,"tag":342,"props":2142,"children":2143},{"style":361},[2144],{"type":229,"value":565},{"type":224,"tag":342,"props":2146,"children":2147},{"class":344,"line":677},[2148],{"type":224,"tag":342,"props":2149,"children":2150},{"style":361},[2151],{"type":229,"value":931},{"type":224,"tag":342,"props":2153,"children":2154},{"class":344,"line":712},[2155,2160,2164,2168,2172,2176,2180,2185],{"type":224,"tag":342,"props":2156,"children":2157},{"style":355},[2158],{"type":229,"value":2159},"        options",{"type":224,"tag":342,"props":2161,"children":2162},{"style":361},[2163],{"type":229,"value":241},{"type":224,"tag":342,"props":2165,"children":2166},{"style":355},[2167],{"type":229,"value":1771},{"type":224,"tag":342,"props":2169,"children":2170},{"style":361},[2171],{"type":229,"value":241},{"type":224,"tag":342,"props":2173,"children":2174},{"style":355},[2175],{"type":229,"value":1780},{"type":224,"tag":342,"props":2177,"children":2178},{"style":361},[2179],{"type":229,"value":944},{"type":224,"tag":342,"props":2181,"children":2182},{"style":349},[2183],{"type":229,"value":2184}," 5",{"type":224,"tag":342,"props":2186,"children":2187},{"style":361},[2188],{"type":229,"value":373},{"type":224,"tag":342,"props":2190,"children":2191},{"class":344,"line":1112},[2192,2196,2200,2204,2208,2213,2217,2222,2226,2231],{"type":224,"tag":342,"props":2193,"children":2194},{"style":355},[2195],{"type":229,"value":2159},{"type":224,"tag":342,"props":2197,"children":2198},{"style":361},[2199],{"type":229,"value":241},{"type":224,"tag":342,"props":2201,"children":2202},{"style":355},[2203],{"type":229,"value":1771},{"type":224,"tag":342,"props":2205,"children":2206},{"style":361},[2207],{"type":229,"value":241},{"type":224,"tag":342,"props":2209,"children":2210},{"style":355},[2211],{"type":229,"value":2212},"Mode ",{"type":224,"tag":342,"props":2214,"children":2215},{"style":361},[2216],{"type":229,"value":944},{"type":224,"tag":342,"props":2218,"children":2219},{"style":355},[2220],{"type":229,"value":2221}," RetryMode",{"type":224,"tag":342,"props":2223,"children":2224},{"style":361},[2225],{"type":229,"value":241},{"type":224,"tag":342,"props":2227,"children":2228},{"style":355},[2229],{"type":229,"value":2230},"Exponential",{"type":224,"tag":342,"props":2232,"children":2233},{"style":361},[2234],{"type":229,"value":373},{"type":224,"tag":342,"props":2236,"children":2237},{"class":344,"line":1121},[2238,2242,2246,2250,2254,2259,2263,2267],{"type":224,"tag":342,"props":2239,"children":2240},{"style":355},[2241],{"type":229,"value":2159},{"type":224,"tag":342,"props":2243,"children":2244},{"style":361},[2245],{"type":229,"value":241},{"type":224,"tag":342,"props":2247,"children":2248},{"style":355},[2249],{"type":229,"value":1809},{"type":224,"tag":342,"props":2251,"children":2252},{"style":361},[2253],{"type":229,"value":241},{"type":224,"tag":342,"props":2255,"children":2256},{"style":355},[2257],{"type":229,"value":2258},"IsDistributedTracingEnabled ",{"type":224,"tag":342,"props":2260,"children":2261},{"style":361},[2262],{"type":229,"value":944},{"type":224,"tag":342,"props":2264,"children":2265},{"style":1748},[2266],{"type":229,"value":1751},{"type":224,"tag":342,"props":2268,"children":2269},{"style":361},[2270],{"type":229,"value":373},{"type":224,"tag":342,"props":2272,"children":2273},{"class":344,"line":1166},[2274],{"type":224,"tag":342,"props":2275,"children":2276},{"style":361},[2277],{"type":229,"value":2278},"    });\n",{"type":224,"tag":342,"props":2280,"children":2281},{"class":344,"line":1175},[2282],{"type":224,"tag":342,"props":2283,"children":2284},{"style":361},[2285],{"type":229,"value":666},{"type":224,"tag":225,"props":2287,"children":2288},{},[2289,2291,2296],{"type":229,"value":2290},"That's the purpose of the ",{"type":224,"tag":277,"props":2292,"children":2294},{"className":2293},[],[2295],{"type":229,"value":2132},{"type":229,"value":1576},{"type":224,"tag":243,"props":2298,"children":2299},{"icon":245},[2300],{"type":224,"tag":225,"props":2301,"children":2302},{},[2303,2305],{"type":229,"value":2304},"Please note that all this configuration (as well as the Uris of each client) can be loaded from the configuration like this ",{"type":224,"tag":277,"props":2306,"children":2308},{"className":2307},[],[2309],{"type":229,"value":2310},"clientBuilder.AddTableServiceClient(builder.Configuration.GetSection(\"Inventory:Tables\"));",{"type":224,"tag":291,"props":2312,"children":2314},{"id":2313},"use-named-clients-for-different-azure-resources",[2315],{"type":229,"value":2316},"Use named clients for different Azure resources",{"type":224,"tag":225,"props":2318,"children":2319},{},[2320,2322,2328],{"type":229,"value":2321},"Usually, you only need one client of each SDK in your application. Let's say you have multiple Azure Storage tables that are used in your application, you will only need to have one ",{"type":224,"tag":277,"props":2323,"children":2325},{"className":2324},[],[2326],{"type":229,"value":2327},"TableServiceClient",{"type":229,"value":2329},". However, if you are interacting with tables in two different storage accounts, you will need multiple table clients.",{"type":224,"tag":225,"props":2331,"children":2332},{},[2333],{"type":229,"value":2334},"To do that you can register your clients with a specific name:",{"type":224,"tag":332,"props":2336,"children":2338},{"className":334,"code":2337,"language":336,"meta":207,"style":207},"builder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddTableServiceClient(builder.Configuration.GetSection(\"Shop:Inventory\"))\n        .WithName(\"Shop\");\n    clientBuilder.AddTableServiceClient(builder.Configuration.GetSection(\"Warehouse:Inventory\"))\n        .WithName(\"Warehouse\");\n}\n",[2339],{"type":224,"tag":277,"props":2340,"children":2341},{"__ignoreMap":207},[2342,2377,2384,2446,2479,2539,2571],{"type":224,"tag":342,"props":2343,"children":2344},{"class":344,"line":345},[2345,2349,2353,2357,2361,2365,2369,2373],{"type":224,"tag":342,"props":2346,"children":2347},{"style":355},[2348],{"type":229,"value":493},{"type":224,"tag":342,"props":2350,"children":2351},{"style":361},[2352],{"type":229,"value":241},{"type":224,"tag":342,"props":2354,"children":2355},{"style":355},[2356],{"type":229,"value":502},{"type":224,"tag":342,"props":2358,"children":2359},{"style":361},[2360],{"type":229,"value":241},{"type":224,"tag":342,"props":2362,"children":2363},{"style":466},[2364],{"type":229,"value":551},{"type":224,"tag":342,"props":2366,"children":2367},{"style":361},[2368],{"type":229,"value":474},{"type":224,"tag":342,"props":2370,"children":2371},{"style":441},[2372],{"type":229,"value":560},{"type":224,"tag":342,"props":2374,"children":2375},{"style":361},[2376],{"type":229,"value":565},{"type":224,"tag":342,"props":2378,"children":2379},{"class":344,"line":376},[2380],{"type":224,"tag":342,"props":2381,"children":2382},{"style":361},[2383],{"type":229,"value":574},{"type":224,"tag":342,"props":2385,"children":2386},{"class":344,"line":393},[2387,2391,2395,2399,2403,2407,2411,2416,2420,2425,2429,2433,2438,2442],{"type":224,"tag":342,"props":2388,"children":2389},{"style":355},[2390],{"type":229,"value":583},{"type":224,"tag":342,"props":2392,"children":2393},{"style":361},[2394],{"type":229,"value":241},{"type":224,"tag":342,"props":2396,"children":2397},{"style":466},[2398],{"type":229,"value":1384},{"type":224,"tag":342,"props":2400,"children":2401},{"style":361},[2402],{"type":229,"value":474},{"type":224,"tag":342,"props":2404,"children":2405},{"style":355},[2406],{"type":229,"value":493},{"type":224,"tag":342,"props":2408,"children":2409},{"style":361},[2410],{"type":229,"value":241},{"type":224,"tag":342,"props":2412,"children":2413},{"style":355},[2414],{"type":229,"value":2415},"Configuration",{"type":224,"tag":342,"props":2417,"children":2418},{"style":361},[2419],{"type":229,"value":241},{"type":224,"tag":342,"props":2421,"children":2422},{"style":466},[2423],{"type":229,"value":2424},"GetSection",{"type":224,"tag":342,"props":2426,"children":2427},{"style":361},[2428],{"type":229,"value":474},{"type":224,"tag":342,"props":2430,"children":2431},{"style":361},[2432],{"type":229,"value":611},{"type":224,"tag":342,"props":2434,"children":2435},{"style":614},[2436],{"type":229,"value":2437},"Shop:Inventory",{"type":224,"tag":342,"props":2439,"children":2440},{"style":361},[2441],{"type":229,"value":611},{"type":224,"tag":342,"props":2443,"children":2444},{"style":361},[2445],{"type":229,"value":1109},{"type":224,"tag":342,"props":2447,"children":2448},{"class":344,"line":427},[2449,2453,2458,2462,2466,2471,2475],{"type":224,"tag":342,"props":2450,"children":2451},{"style":361},[2452],{"type":229,"value":1342},{"type":224,"tag":342,"props":2454,"children":2455},{"style":466},[2456],{"type":229,"value":2457},"WithName",{"type":224,"tag":342,"props":2459,"children":2460},{"style":361},[2461],{"type":229,"value":474},{"type":224,"tag":342,"props":2463,"children":2464},{"style":361},[2465],{"type":229,"value":611},{"type":224,"tag":342,"props":2467,"children":2468},{"style":614},[2469],{"type":229,"value":2470},"Shop",{"type":224,"tag":342,"props":2472,"children":2473},{"style":361},[2474],{"type":229,"value":611},{"type":224,"tag":342,"props":2476,"children":2477},{"style":361},[2478],{"type":229,"value":484},{"type":224,"tag":342,"props":2480,"children":2481},{"class":344,"line":437},[2482,2486,2490,2494,2498,2502,2506,2510,2514,2518,2522,2526,2531,2535],{"type":224,"tag":342,"props":2483,"children":2484},{"style":355},[2485],{"type":229,"value":583},{"type":224,"tag":342,"props":2487,"children":2488},{"style":361},[2489],{"type":229,"value":241},{"type":224,"tag":342,"props":2491,"children":2492},{"style":466},[2493],{"type":229,"value":1384},{"type":224,"tag":342,"props":2495,"children":2496},{"style":361},[2497],{"type":229,"value":474},{"type":224,"tag":342,"props":2499,"children":2500},{"style":355},[2501],{"type":229,"value":493},{"type":224,"tag":342,"props":2503,"children":2504},{"style":361},[2505],{"type":229,"value":241},{"type":224,"tag":342,"props":2507,"children":2508},{"style":355},[2509],{"type":229,"value":2415},{"type":224,"tag":342,"props":2511,"children":2512},{"style":361},[2513],{"type":229,"value":241},{"type":224,"tag":342,"props":2515,"children":2516},{"style":466},[2517],{"type":229,"value":2424},{"type":224,"tag":342,"props":2519,"children":2520},{"style":361},[2521],{"type":229,"value":474},{"type":224,"tag":342,"props":2523,"children":2524},{"style":361},[2525],{"type":229,"value":611},{"type":224,"tag":342,"props":2527,"children":2528},{"style":614},[2529],{"type":229,"value":2530},"Warehouse:Inventory",{"type":224,"tag":342,"props":2532,"children":2533},{"style":361},[2534],{"type":229,"value":611},{"type":224,"tag":342,"props":2536,"children":2537},{"style":361},[2538],{"type":229,"value":1109},{"type":224,"tag":342,"props":2540,"children":2541},{"class":344,"line":487},[2542,2546,2550,2554,2558,2563,2567],{"type":224,"tag":342,"props":2543,"children":2544},{"style":361},[2545],{"type":229,"value":1342},{"type":224,"tag":342,"props":2547,"children":2548},{"style":466},[2549],{"type":229,"value":2457},{"type":224,"tag":342,"props":2551,"children":2552},{"style":361},[2553],{"type":229,"value":474},{"type":224,"tag":342,"props":2555,"children":2556},{"style":361},[2557],{"type":229,"value":611},{"type":224,"tag":342,"props":2559,"children":2560},{"style":614},[2561],{"type":229,"value":2562},"Warehouse",{"type":224,"tag":342,"props":2564,"children":2565},{"style":361},[2566],{"type":229,"value":611},{"type":224,"tag":342,"props":2568,"children":2569},{"style":361},[2570],{"type":229,"value":484},{"type":224,"tag":342,"props":2572,"children":2573},{"class":344,"line":529},[2574],{"type":224,"tag":342,"props":2575,"children":2576},{"style":361},[2577],{"type":229,"value":1189},{"type":224,"tag":225,"props":2579,"children":2580},{},[2581],{"type":229,"value":2582},"This way, you will be able to retrieve the specific client you need in your code:",{"type":224,"tag":332,"props":2584,"children":2586},{"className":334,"code":2585,"language":336,"meta":207,"style":207},"public class WarehouseDeliveryService\n{\n    private readonly TableServiceClient _tableServiceClient;\n\n    public WarehouseDeliveryService(IAzureClientFactory\u003CTableServiceClient> azureClientFactory)\n    {\n        _tableServiceClient = azureClientFactory.CreateClient(\"Warehouse\");\n    }\n}\n",[2587],{"type":224,"tag":277,"props":2588,"children":2589},{"__ignoreMap":207},[2590,2606,2613,2638,2645,2687,2694,2739,2746],{"type":224,"tag":342,"props":2591,"children":2592},{"class":344,"line":345},[2593,2597,2601],{"type":224,"tag":342,"props":2594,"children":2595},{"style":764},[2596],{"type":229,"value":767},{"type":224,"tag":342,"props":2598,"children":2599},{"style":441},[2600],{"type":229,"value":772},{"type":224,"tag":342,"props":2602,"children":2603},{"style":441},[2604],{"type":229,"value":2605}," WarehouseDeliveryService\n",{"type":224,"tag":342,"props":2607,"children":2608},{"class":344,"line":376},[2609],{"type":224,"tag":342,"props":2610,"children":2611},{"style":361},[2612],{"type":229,"value":574},{"type":224,"tag":342,"props":2614,"children":2615},{"class":344,"line":393},[2616,2620,2624,2629,2634],{"type":224,"tag":342,"props":2617,"children":2618},{"style":764},[2619],{"type":229,"value":802},{"type":224,"tag":342,"props":2621,"children":2622},{"style":764},[2623],{"type":229,"value":807},{"type":224,"tag":342,"props":2625,"children":2626},{"style":441},[2627],{"type":229,"value":2628}," TableServiceClient",{"type":224,"tag":342,"props":2630,"children":2631},{"style":441},[2632],{"type":229,"value":2633}," _tableServiceClient",{"type":224,"tag":342,"props":2635,"children":2636},{"style":361},[2637],{"type":229,"value":373},{"type":224,"tag":342,"props":2639,"children":2640},{"class":344,"line":427},[2641],{"type":224,"tag":342,"props":2642,"children":2643},{"emptyLinePlaceholder":431},[2644],{"type":229,"value":434},{"type":224,"tag":342,"props":2646,"children":2647},{"class":344,"line":437},[2648,2652,2657,2661,2666,2670,2674,2678,2683],{"type":224,"tag":342,"props":2649,"children":2650},{"style":764},[2651],{"type":229,"value":874},{"type":224,"tag":342,"props":2653,"children":2654},{"style":466},[2655],{"type":229,"value":2656}," WarehouseDeliveryService",{"type":224,"tag":342,"props":2658,"children":2659},{"style":361},[2660],{"type":229,"value":474},{"type":224,"tag":342,"props":2662,"children":2663},{"style":441},[2664],{"type":229,"value":2665},"IAzureClientFactory",{"type":224,"tag":342,"props":2667,"children":2668},{"style":361},[2669],{"type":229,"value":516},{"type":224,"tag":342,"props":2671,"children":2672},{"style":441},[2673],{"type":229,"value":2327},{"type":224,"tag":342,"props":2675,"children":2676},{"style":361},[2677],{"type":229,"value":825},{"type":224,"tag":342,"props":2679,"children":2680},{"style":441},[2681],{"type":229,"value":2682}," azureClientFactory",{"type":224,"tag":342,"props":2684,"children":2685},{"style":361},[2686],{"type":229,"value":923},{"type":224,"tag":342,"props":2688,"children":2689},{"class":344,"line":487},[2690],{"type":224,"tag":342,"props":2691,"children":2692},{"style":361},[2693],{"type":229,"value":931},{"type":224,"tag":342,"props":2695,"children":2696},{"class":344,"line":529},[2697,2702,2706,2710,2714,2719,2723,2727,2731,2735],{"type":224,"tag":342,"props":2698,"children":2699},{"style":355},[2700],{"type":229,"value":2701},"        _tableServiceClient ",{"type":224,"tag":342,"props":2703,"children":2704},{"style":361},[2705],{"type":229,"value":944},{"type":224,"tag":342,"props":2707,"children":2708},{"style":355},[2709],{"type":229,"value":2682},{"type":224,"tag":342,"props":2711,"children":2712},{"style":361},[2713],{"type":229,"value":241},{"type":224,"tag":342,"props":2715,"children":2716},{"style":466},[2717],{"type":229,"value":2718},"CreateClient",{"type":224,"tag":342,"props":2720,"children":2721},{"style":361},[2722],{"type":229,"value":474},{"type":224,"tag":342,"props":2724,"children":2725},{"style":361},[2726],{"type":229,"value":611},{"type":224,"tag":342,"props":2728,"children":2729},{"style":614},[2730],{"type":229,"value":2562},{"type":224,"tag":342,"props":2732,"children":2733},{"style":361},[2734],{"type":229,"value":611},{"type":224,"tag":342,"props":2736,"children":2737},{"style":361},[2738],{"type":229,"value":484},{"type":224,"tag":342,"props":2740,"children":2741},{"class":344,"line":568},[2742],{"type":224,"tag":342,"props":2743,"children":2744},{"style":361},[2745],{"type":229,"value":980},{"type":224,"tag":342,"props":2747,"children":2748},{"class":344,"line":577},[2749],{"type":224,"tag":342,"props":2750,"children":2751},{"style":361},[2752],{"type":229,"value":1189},{"type":224,"tag":291,"props":2754,"children":2756},{"id":2755},"register-a-custom-client-factory",[2757],{"type":229,"value":2758},"Register a custom client factory",{"type":224,"tag":225,"props":2760,"children":2761},{},[2762,2764,2771,2773,2779],{"type":229,"value":2763},"If you have ",{"type":224,"tag":232,"props":2765,"children":2768},{"href":2766,"rel":2767},"https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/extensions/Microsoft.Extensions.Azure/README.md#registering-a-custom-client-factory",[236],[2769],{"type":229,"value":2770},"specific needs",{"type":229,"value":2772},", the ",{"type":224,"tag":277,"props":2774,"children":2776},{"className":2775},[],[2777],{"type":229,"value":2778},"AddClient",{"type":229,"value":2780}," method can help you register your Azure client while letting you control how you instantiate the client.",{"type":224,"tag":225,"props":2782,"children":2783},{},[2784,2786,2792,2794,2800,2802,2807,2809,2816,2818,2823],{"type":229,"value":2785},"For instance, the Azure Cosmos Db .NET SDK is not built on the same foundation (",{"type":224,"tag":277,"props":2787,"children":2789},{"className":2788},[],[2790],{"type":229,"value":2791},"Azure.Core",{"type":229,"value":2793},") as the other SDKs. So at the time of writing, there is no ",{"type":224,"tag":277,"props":2795,"children":2797},{"className":2796},[],[2798],{"type":229,"value":2799},"AddCosmosServiceClient",{"type":229,"value":2801}," you can use in the ",{"type":224,"tag":277,"props":2803,"children":2805},{"className":2804},[],[2806],{"type":229,"value":551},{"type":229,"value":2808}," (there is an ",{"type":224,"tag":232,"props":2810,"children":2813},{"href":2811,"rel":2812},"https://github.com/Azure/azure-cosmos-dotnet-v3/issues/4002",[236],[2814],{"type":229,"value":2815},"issue",{"type":229,"value":2817}," about that though). However, you can use the ",{"type":224,"tag":277,"props":2819,"children":2821},{"className":2820},[],[2822],{"type":229,"value":2778},{"type":229,"value":2824}," I've just mentioned.",{"type":224,"tag":332,"props":2826,"children":2828},{"className":334,"code":2827,"language":336,"meta":207,"style":207},"builder.Services.AddOptions\u003CCosmosDbConfiguration>().BindConfiguration(\"Warehouse:CosmosDb\");\nbuilder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddClient\u003CCosmosClient, CosmosClientOptions>((_, _, serviceProvider) =>\n    {\n        var cosmosConfiguration = serviceProvider.GetRequiredService\u003CIOptions\u003CCosmosDbConfiguration>>().Value;\n        return new CosmosClientBuilder(cosmosConfiguration.Endpoint, cosmosConfiguration.AuthKey)\n            .WithSerializerOptions(new () { PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase })\n            .Build();\n    }).WithName(\"Warehouse\");\n}\n",[2829],{"type":224,"tag":277,"props":2830,"children":2831},{"__ignoreMap":207},[2832,2896,2931,2938,3007,3014,3075,3132,3187,3202,3234],{"type":224,"tag":342,"props":2833,"children":2834},{"class":344,"line":345},[2835,2839,2843,2847,2851,2856,2860,2865,2870,2875,2879,2883,2888,2892],{"type":224,"tag":342,"props":2836,"children":2837},{"style":355},[2838],{"type":229,"value":493},{"type":224,"tag":342,"props":2840,"children":2841},{"style":361},[2842],{"type":229,"value":241},{"type":224,"tag":342,"props":2844,"children":2845},{"style":355},[2846],{"type":229,"value":502},{"type":224,"tag":342,"props":2848,"children":2849},{"style":361},[2850],{"type":229,"value":241},{"type":224,"tag":342,"props":2852,"children":2853},{"style":466},[2854],{"type":229,"value":2855},"AddOptions",{"type":224,"tag":342,"props":2857,"children":2858},{"style":361},[2859],{"type":229,"value":516},{"type":224,"tag":342,"props":2861,"children":2862},{"style":441},[2863],{"type":229,"value":2864},"CosmosDbConfiguration",{"type":224,"tag":342,"props":2866,"children":2867},{"style":361},[2868],{"type":229,"value":2869},">().",{"type":224,"tag":342,"props":2871,"children":2872},{"style":466},[2873],{"type":229,"value":2874},"BindConfiguration",{"type":224,"tag":342,"props":2876,"children":2877},{"style":361},[2878],{"type":229,"value":474},{"type":224,"tag":342,"props":2880,"children":2881},{"style":361},[2882],{"type":229,"value":611},{"type":224,"tag":342,"props":2884,"children":2885},{"style":614},[2886],{"type":229,"value":2887},"Warehouse:CosmosDb",{"type":224,"tag":342,"props":2889,"children":2890},{"style":361},[2891],{"type":229,"value":611},{"type":224,"tag":342,"props":2893,"children":2894},{"style":361},[2895],{"type":229,"value":484},{"type":224,"tag":342,"props":2897,"children":2898},{"class":344,"line":376},[2899,2903,2907,2911,2915,2919,2923,2927],{"type":224,"tag":342,"props":2900,"children":2901},{"style":355},[2902],{"type":229,"value":493},{"type":224,"tag":342,"props":2904,"children":2905},{"style":361},[2906],{"type":229,"value":241},{"type":224,"tag":342,"props":2908,"children":2909},{"style":355},[2910],{"type":229,"value":502},{"type":224,"tag":342,"props":2912,"children":2913},{"style":361},[2914],{"type":229,"value":241},{"type":224,"tag":342,"props":2916,"children":2917},{"style":466},[2918],{"type":229,"value":551},{"type":224,"tag":342,"props":2920,"children":2921},{"style":361},[2922],{"type":229,"value":474},{"type":224,"tag":342,"props":2924,"children":2925},{"style":441},[2926],{"type":229,"value":560},{"type":224,"tag":342,"props":2928,"children":2929},{"style":361},[2930],{"type":229,"value":565},{"type":224,"tag":342,"props":2932,"children":2933},{"class":344,"line":393},[2934],{"type":224,"tag":342,"props":2935,"children":2936},{"style":361},[2937],{"type":229,"value":574},{"type":224,"tag":342,"props":2939,"children":2940},{"class":344,"line":427},[2941,2945,2949,2953,2957,2962,2966,2971,2976,2981,2985,2990,2994,2999,3003],{"type":224,"tag":342,"props":2942,"children":2943},{"style":355},[2944],{"type":229,"value":583},{"type":224,"tag":342,"props":2946,"children":2947},{"style":361},[2948],{"type":229,"value":241},{"type":224,"tag":342,"props":2950,"children":2951},{"style":466},[2952],{"type":229,"value":2778},{"type":224,"tag":342,"props":2954,"children":2955},{"style":361},[2956],{"type":229,"value":516},{"type":224,"tag":342,"props":2958,"children":2959},{"style":441},[2960],{"type":229,"value":2961},"CosmosClient",{"type":224,"tag":342,"props":2963,"children":2964},{"style":361},[2965],{"type":229,"value":909},{"type":224,"tag":342,"props":2967,"children":2968},{"style":441},[2969],{"type":229,"value":2970}," CosmosClientOptions",{"type":224,"tag":342,"props":2972,"children":2973},{"style":361},[2974],{"type":229,"value":2975},">((",{"type":224,"tag":342,"props":2977,"children":2978},{"style":441},[2979],{"type":229,"value":2980},"_",{"type":224,"tag":342,"props":2982,"children":2983},{"style":361},[2984],{"type":229,"value":909},{"type":224,"tag":342,"props":2986,"children":2987},{"style":441},[2988],{"type":229,"value":2989}," _",{"type":224,"tag":342,"props":2991,"children":2992},{"style":361},[2993],{"type":229,"value":909},{"type":224,"tag":342,"props":2995,"children":2996},{"style":441},[2997],{"type":229,"value":2998}," serviceProvider",{"type":224,"tag":342,"props":3000,"children":3001},{"style":361},[3002],{"type":229,"value":1159},{"type":224,"tag":342,"props":3004,"children":3005},{"style":361},[3006],{"type":229,"value":565},{"type":224,"tag":342,"props":3008,"children":3009},{"class":344,"line":437},[3010],{"type":224,"tag":342,"props":3011,"children":3012},{"style":361},[3013],{"type":229,"value":931},{"type":224,"tag":342,"props":3015,"children":3016},{"class":344,"line":487},[3017,3022,3027,3031,3035,3039,3044,3048,3053,3057,3061,3066,3071],{"type":224,"tag":342,"props":3018,"children":3019},{"style":441},[3020],{"type":229,"value":3021},"        var",{"type":224,"tag":342,"props":3023,"children":3024},{"style":441},[3025],{"type":229,"value":3026}," cosmosConfiguration",{"type":224,"tag":342,"props":3028,"children":3029},{"style":361},[3030],{"type":229,"value":454},{"type":224,"tag":342,"props":3032,"children":3033},{"style":355},[3034],{"type":229,"value":2998},{"type":224,"tag":342,"props":3036,"children":3037},{"style":361},[3038],{"type":229,"value":241},{"type":224,"tag":342,"props":3040,"children":3041},{"style":466},[3042],{"type":229,"value":3043},"GetRequiredService",{"type":224,"tag":342,"props":3045,"children":3046},{"style":361},[3047],{"type":229,"value":516},{"type":224,"tag":342,"props":3049,"children":3050},{"style":441},[3051],{"type":229,"value":3052},"IOptions",{"type":224,"tag":342,"props":3054,"children":3055},{"style":361},[3056],{"type":229,"value":516},{"type":224,"tag":342,"props":3058,"children":3059},{"style":441},[3060],{"type":229,"value":2864},{"type":224,"tag":342,"props":3062,"children":3063},{"style":361},[3064],{"type":229,"value":3065},">>().",{"type":224,"tag":342,"props":3067,"children":3068},{"style":355},[3069],{"type":229,"value":3070},"Value",{"type":224,"tag":342,"props":3072,"children":3073},{"style":361},[3074],{"type":229,"value":373},{"type":224,"tag":342,"props":3076,"children":3077},{"class":344,"line":529},[3078,3083,3088,3093,3097,3102,3106,3111,3115,3119,3123,3128],{"type":224,"tag":342,"props":3079,"children":3080},{"style":1051},[3081],{"type":229,"value":3082},"        return",{"type":224,"tag":342,"props":3084,"children":3085},{"style":361},[3086],{"type":229,"value":3087}," new",{"type":224,"tag":342,"props":3089,"children":3090},{"style":441},[3091],{"type":229,"value":3092}," CosmosClientBuilder",{"type":224,"tag":342,"props":3094,"children":3095},{"style":361},[3096],{"type":229,"value":474},{"type":224,"tag":342,"props":3098,"children":3099},{"style":355},[3100],{"type":229,"value":3101},"cosmosConfiguration",{"type":224,"tag":342,"props":3103,"children":3104},{"style":361},[3105],{"type":229,"value":241},{"type":224,"tag":342,"props":3107,"children":3108},{"style":355},[3109],{"type":229,"value":3110},"Endpoint",{"type":224,"tag":342,"props":3112,"children":3113},{"style":361},[3114],{"type":229,"value":909},{"type":224,"tag":342,"props":3116,"children":3117},{"style":355},[3118],{"type":229,"value":3026},{"type":224,"tag":342,"props":3120,"children":3121},{"style":361},[3122],{"type":229,"value":241},{"type":224,"tag":342,"props":3124,"children":3125},{"style":355},[3126],{"type":229,"value":3127},"AuthKey",{"type":224,"tag":342,"props":3129,"children":3130},{"style":361},[3131],{"type":229,"value":923},{"type":224,"tag":342,"props":3133,"children":3134},{"class":344,"line":568},[3135,3140,3145,3149,3154,3159,3164,3168,3173,3177,3182],{"type":224,"tag":342,"props":3136,"children":3137},{"style":361},[3138],{"type":229,"value":3139},"            .",{"type":224,"tag":342,"props":3141,"children":3142},{"style":466},[3143],{"type":229,"value":3144},"WithSerializerOptions",{"type":224,"tag":342,"props":3146,"children":3147},{"style":361},[3148],{"type":229,"value":597},{"type":224,"tag":342,"props":3150,"children":3151},{"style":361},[3152],{"type":229,"value":3153}," ()",{"type":224,"tag":342,"props":3155,"children":3156},{"style":361},[3157],{"type":229,"value":3158}," {",{"type":224,"tag":342,"props":3160,"children":3161},{"style":355},[3162],{"type":229,"value":3163}," PropertyNamingPolicy ",{"type":224,"tag":342,"props":3165,"children":3166},{"style":361},[3167],{"type":229,"value":944},{"type":224,"tag":342,"props":3169,"children":3170},{"style":355},[3171],{"type":229,"value":3172}," CosmosPropertyNamingPolicy",{"type":224,"tag":342,"props":3174,"children":3175},{"style":361},[3176],{"type":229,"value":241},{"type":224,"tag":342,"props":3178,"children":3179},{"style":355},[3180],{"type":229,"value":3181},"CamelCase ",{"type":224,"tag":342,"props":3183,"children":3184},{"style":361},[3185],{"type":229,"value":3186},"})\n",{"type":224,"tag":342,"props":3188,"children":3189},{"class":344,"line":577},[3190,3194,3198],{"type":224,"tag":342,"props":3191,"children":3192},{"style":361},[3193],{"type":229,"value":3139},{"type":224,"tag":342,"props":3195,"children":3196},{"style":466},[3197],{"type":229,"value":704},{"type":224,"tag":342,"props":3199,"children":3200},{"style":361},[3201],{"type":229,"value":709},{"type":224,"tag":342,"props":3203,"children":3204},{"class":344,"line":629},[3205,3210,3214,3218,3222,3226,3230],{"type":224,"tag":342,"props":3206,"children":3207},{"style":361},[3208],{"type":229,"value":3209},"    }).",{"type":224,"tag":342,"props":3211,"children":3212},{"style":466},[3213],{"type":229,"value":2457},{"type":224,"tag":342,"props":3215,"children":3216},{"style":361},[3217],{"type":229,"value":474},{"type":224,"tag":342,"props":3219,"children":3220},{"style":361},[3221],{"type":229,"value":611},{"type":224,"tag":342,"props":3223,"children":3224},{"style":614},[3225],{"type":229,"value":2562},{"type":224,"tag":342,"props":3227,"children":3228},{"style":361},[3229],{"type":229,"value":611},{"type":224,"tag":342,"props":3231,"children":3232},{"style":361},[3233],{"type":229,"value":484},{"type":224,"tag":342,"props":3235,"children":3236},{"class":344,"line":660},[3237],{"type":224,"tag":342,"props":3238,"children":3239},{"style":361},[3240],{"type":229,"value":1189},{"type":224,"tag":225,"props":3242,"children":3243},{},[3244,3246,3251],{"type":229,"value":3245},"You can note that using the ",{"type":224,"tag":277,"props":3247,"children":3249},{"className":3248},[],[3250],{"type":229,"value":2778},{"type":229,"value":3252}," method allows us to take profit from the named clients' feature.",{"type":224,"tag":291,"props":3254,"children":3256},{"id":3255},"wrapping-up",[3257],{"type":229,"value":3258},"Wrapping up",{"type":224,"tag":225,"props":3260,"children":3261},{},[3262,3264,3273],{"type":229,"value":3263},"As you have seen, the use of the ",{"type":224,"tag":232,"props":3265,"children":3267},{"href":273,"rel":3266},[236],[3268],{"type":224,"tag":277,"props":3269,"children":3271},{"className":3270},[],[3272],{"type":229,"value":282},{"type":229,"value":3274}," package simplifies the registration and configuration of Azure clients. While providing you with a consistent way of handling the dependency injection for Azure SDKs, it also allows you to easily customize the authentication and other options available.",{"type":224,"tag":225,"props":3276,"children":3277},{},[3278],{"type":229,"value":3279},"I hope you learned something. Don't hesitate to share your tips or what you like about the Azure SDKs in the comments.",{"type":224,"tag":3281,"props":3282,"children":3283},"style",{},[3284],{"type":229,"value":3285},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":207,"searchDepth":376,"depth":376,"links":3287},[3288,3289,3290,3291,3292,3293],{"id":293,"depth":376,"text":296},{"id":1231,"depth":376,"text":1234},{"id":1561,"depth":376,"text":1564},{"id":2313,"depth":376,"text":2316},{"id":2755,"depth":376,"text":2758},{"id":3255,"depth":376,"text":3258},"markdown","content:1.posts:59.azure-sdk-di.md","content","1.posts/59.azure-sdk-di.md","md",[3300,3312],{"_path":187,"_dir":205,"_draft":206,"_partial":206,"_locale":207,"title":186,"description":3301,"lead":3302,"date":3303,"image":3304,"badge":3306,"tags":3307,"ImageAttribution":3309,"_type":3294,"_id":3310,"_source":3296,"_file":3311,"_extension":3298},"In this post, we will discuss how to write a small .NET program that retrieves events from an IT event calendar and submits them to another one using AngleSharp.","Playing with AngleSharp","2024-03-04T00:00:00.000Z",{"src":3305},"/images/calendar_1.webp",{"label":214},[218,3308],"AngleSharp","Picture of \u003Ca href=\"https://unsplash.com/fr/@towfiqu999999\">Towfiqu barbhuiya on \u003Ca href=\"https://unsplash.com/fr/photos/un-calendrier-avec-des-boutons-poussoirs-rouges-epingles-bwOAixLG0uc\">Unsplash\u003C/a>","content:1.posts:60.it-event-calendars.md","1.posts/60.it-event-calendars.md",{"_path":181,"_dir":205,"_draft":206,"_partial":206,"_locale":207,"title":180,"description":3313,"lead":3313,"date":3314,"image":3315,"badge":3317,"tags":3319,"ImageAttribution":3324,"_type":3294,"_id":3325,"_source":3296,"_file":3326,"_extension":3298},"Some tips about Azure and Azure DevOps.","2024-01-29T00:00:00.000Z",{"src":3316},"/images/surface_1.jpg",{"label":3318},"Tips",[3320,3321,3322,3323],"tips learned this week","Azure Functions","FinOps","Azure DevOps","Picture of \u003Ca href=\"https://unsplash.com/fr/@surface?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash\">Surface\u003C/a> on \u003Ca href=\"https://unsplash.com/fr/photos/appareil-surface-sur-la-table-taHYzvApW1o?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash\">Unsplash\u003C/a>","content:1.posts:58.w04-2024-tips-learned-this-week.md","1.posts/58.w04-2024-tips-learned-this-week.md",1716749601478]