[{"data":1,"prerenderedAt":2276},["ShallowReactive",2],{"navigation_docs":3,"-sdks-openfeature-dotnet":192,"-sdks-openfeature-dotnet-surround":1741,"sdks\u002Fopenfeature-dotnet\u002Finstall":1747,"sdks\u002Fopenfeature-dotnet\u002Fconfigure":1854,"sdks\u002Fopenfeature-dotnet\u002Fsimple-usage":1971,"sdks\u002Fopenfeature-dotnet\u002Fuser-context":2064},[4,36,176],{"title":5,"icon":6,"modifiedAt":7,"path":8,"stem":9,"children":10,"page":6},"Getting Started",false,"2026-04-30T19:15:33.000Z","\u002Fgetting-started","1.getting-started",[11,16,21,26,31],{"title":12,"path":13,"stem":14,"icon":15},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F1.quickstart","i-lucide-fast-forward",{"title":17,"path":18,"stem":19,"icon":20},"Core Concepts","\u002Fgetting-started\u002Fcore-concepts","1.getting-started\u002F2.core-concepts","i-lucide-workflow",{"title":22,"path":23,"stem":24,"icon":25},"Configs Anatomy","\u002Fgetting-started\u002Fconfigs","1.getting-started\u002F3.configs","i-lucide-file-cog",{"title":27,"path":28,"stem":29,"icon":30},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers",{"title":32,"path":33,"stem":34,"icon":35},"JSON Schema Validation","\u002Fgetting-started\u002Fjson-schema-validation","1.getting-started\u002F5.json-schema-validation","i-lucide-braces",{"title":37,"modifiedAt":38,"defaultOpen":39,"path":40,"stem":41,"children":42,"page":6},"SDKs","2026-05-02T18:15:50.000Z",true,"\u002Fsdks","2.sdks",[43,48,70,95,111,137],{"title":44,"path":45,"stem":46,"icon":47},"Available SDKs","\u002Fsdks\u002Favailable-sdks","2.sdks\u002F1.available-sdks","i-lucide-list",{"title":49,"modifiedAt":50,"icon":51,"defaultOpen":6,"path":52,"stem":53,"children":54,"page":6},"Browser SDKs","2026-09-22T05:52:53.000Z","i-lucide-monitor","\u002Fsdks\u002Fbrowser","2.sdks\u002F2.browser",[55,60,65],{"title":56,"path":57,"stem":58,"icon":59},"Javascript","\u002Fsdks\u002Fbrowser\u002Fjavascript","2.sdks\u002F2.browser\u002F1.javascript","cd-logos-javascript",{"title":61,"path":62,"stem":63,"icon":64},"React","\u002Fsdks\u002Fbrowser\u002Freact","2.sdks\u002F2.browser\u002F2.react","cd-logos-react-light",{"title":66,"path":67,"stem":68,"icon":69},"Vue","\u002Fsdks\u002Fbrowser\u002Fvue","2.sdks\u002F2.browser\u002F3.vue","cd-logos-vue",{"title":71,"modifiedAt":50,"icon":72,"defaultOpen":6,"path":73,"stem":74,"children":75,"page":6},"Mobile SDKs","i-lucide-smartphone","\u002Fsdks\u002Fmobile","2.sdks\u002F3.mobile",[76,80,85,90],{"title":77,"path":78,"stem":79,"icon":64},"React Native","\u002Fsdks\u002Fmobile\u002Freact-native","2.sdks\u002F3.mobile\u002F1.react-native",{"title":81,"path":82,"stem":83,"icon":84},"Flutter","\u002Fsdks\u002Fmobile\u002Fflutter","2.sdks\u002F3.mobile\u002F2.flutter","cd-logos-flutter",{"title":86,"path":87,"stem":88,"icon":89},"Swift","\u002Fsdks\u002Fmobile\u002Fswift","2.sdks\u002F3.mobile\u002F3.swift","cd-logos-swift",{"title":91,"path":92,"stem":93,"icon":94},"Android","\u002Fsdks\u002Fmobile\u002Fandroid","2.sdks\u002F3.mobile\u002F4.android","cd-logos-android",{"title":96,"modifiedAt":50,"icon":97,"defaultOpen":6,"path":98,"stem":99,"children":100,"page":6},"Meta-framework SDKs","i-lucide-monitor-smartphone","\u002Fsdks\u002Fmeta","2.sdks\u002F4.meta",[101,106],{"title":102,"path":103,"stem":104,"icon":105},"Next.js","\u002Fsdks\u002Fmeta\u002Fnextjs","2.sdks\u002F4.meta\u002F1.nextjs","cd-logos-nextjs",{"title":107,"path":108,"stem":109,"icon":110},"Nuxt","\u002Fsdks\u002Fmeta\u002Fnuxt","2.sdks\u002F4.meta\u002F2.nuxt","cd-logos-nuxt",{"title":112,"modifiedAt":50,"icon":113,"defaultOpen":6,"path":114,"stem":115,"children":116,"page":6},"Server SDKs","i-lucide-server","\u002Fsdks\u002Fserver","2.sdks\u002F5.server",[117,122,127,132],{"title":118,"path":119,"stem":120,"icon":121},"Node.js","\u002Fsdks\u002Fserver\u002Fnode-js","2.sdks\u002F5.server\u002F1.node-js","cd-logos-nodejs",{"title":123,"path":124,"stem":125,"icon":126},"Python","\u002Fsdks\u002Fserver\u002Fpython","2.sdks\u002F5.server\u002F2.python","cd-logos-python",{"title":128,"path":129,"stem":130,"icon":131},"Java","\u002Fsdks\u002Fserver\u002Fjava","2.sdks\u002F5.server\u002F3.java","cd-logos-java",{"title":133,"path":134,"stem":135,"icon":136},".NET","\u002Fsdks\u002Fserver\u002Fdotnet","2.sdks\u002F5.server\u002F4.dotnet","cd-logos-dotnet",{"title":138,"modifiedAt":50,"icon":139,"defaultOpen":6,"path":140,"stem":141,"children":142,"page":6},"OpenFeature Providers","cd-logos-openfeature","\u002Fsdks\u002Fopenfeature","2.sdks\u002F6.openfeature",[143,148,152,156,160,164,168,172],{"title":144,"path":145,"stem":146,"icon":139,"icons":147},"Web","\u002Fsdks\u002Fopenfeature\u002Fweb","2.sdks\u002F6.openfeature\u002F1.web",[139,59],{"title":86,"path":149,"stem":150,"icon":139,"icons":151},"\u002Fsdks\u002Fopenfeature\u002Fswift","2.sdks\u002F6.openfeature\u002F2.swift",[139,89],{"title":91,"path":153,"stem":154,"icon":139,"icons":155},"\u002Fsdks\u002Fopenfeature\u002Fandroid","2.sdks\u002F6.openfeature\u002F3.android",[139,94],{"title":81,"path":157,"stem":158,"icon":139,"icons":159},"\u002Fsdks\u002Fopenfeature\u002Fflutter","2.sdks\u002F6.openfeature\u002F4.flutter",[139,84],{"title":118,"path":161,"stem":162,"icon":139,"icons":163},"\u002Fsdks\u002Fopenfeature\u002Fnode-js","2.sdks\u002F6.openfeature\u002F5.node-js",[139,121],{"title":123,"path":165,"stem":166,"icon":139,"icons":167},"\u002Fsdks\u002Fopenfeature\u002Fpython","2.sdks\u002F6.openfeature\u002F6.python",[139,126],{"title":128,"path":169,"stem":170,"icon":139,"icons":171},"\u002Fsdks\u002Fopenfeature\u002Fjava","2.sdks\u002F6.openfeature\u002F7.java",[139,131],{"title":133,"path":173,"stem":174,"icon":139,"icons":175},"\u002Fsdks\u002Fopenfeature\u002Fdotnet","2.sdks\u002F6.openfeature\u002F8.dotnet",[139,136],{"title":177,"modifiedAt":178,"defaultOpen":39,"path":179,"stem":180,"children":181,"page":6},"Integrations","2026-07-31T18:08:51.000Z","\u002Fintegrations","3.integrations",[182,187],{"title":183,"path":184,"stem":185,"icon":186},"Terraform","\u002Fintegrations\u002Fterraform","3.integrations\u002F1.terraform","cd-logos-terraform",{"title":188,"path":189,"stem":190,"icon":191},"MCP","\u002Fintegrations\u002Fmcp","3.integrations\u002F2.mcp","cd-logos-mcp",{"id":193,"title":194,"body":195,"description":1732,"extension":1733,"links":1734,"meta":1735,"navigation":1737,"path":173,"seo":1739,"stem":174,"__hash__":1740},"docs\u002F2.sdks\u002F6.openfeature\u002F8.dotnet.md","OpenFeature .NET Provider",{"type":196,"value":197,"toc":1718},"minimark",[198,202,208,213,230,246,249,261,265,271,282,286,290,307,310,314,328,403,408,415,422,548,569,573,576,604,608,611,614,617,680,693,802,809,813,820,917,924,928,931,934,1001,1006,1010,1017,1141,1151,1154,1159,1180,1187,1487,1508,1511,1711,1714],[199,200],"div",{"hidden":39,"dataTitleIcon":201},"openfeature-dotnet",[203,204],"external-badges",{"package-url":205,"registry":206,"repo":207},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FConfigDirector.OpenFeature.ServerProvider","nuget","dotnet-sdks\u002Ftree\u002Fmain\u002Fsrc\u002FConfigDirector.OpenFeature.ServerProvider",[209,210,212],"h2",{"id":211},"introduction","Introduction",[214,215,216,217,225,226,229],"p",{},"The OpenFeature .NET Provider is intended to be used in combination with the ",[218,219,224],"a",{"href":220,"rel":221,"target":223},"https:\u002F\u002Fopenfeature.dev\u002Fdocs\u002Freference\u002Fsdks\u002Fserver\u002Fdotnet\u002F",[222],"noopener","_blank","OpenFeature .NET SDK",". The provider wraps the ConfigDirector ",[218,227,228],{"href":134},".NET SDK",".",[214,231,232,233,237,238,241,242,245],{},"The provider targets ",[234,235,236],"code",{},"net8.0"," and ",[234,239,240],{},"netstandard2.0",", so it runs on .NET 8 and later as well as on .NET Framework 4.6.2 and later. It requires version ",[234,243,244],{},"2.14.1"," or later of the OpenFeature .NET SDK.",[214,247,248],{},"The provider is thread safe. Register one instance when your application starts, and shut OpenFeature down when it stops. Evaluations read config state the provider already holds in memory, so they make no network calls on the request path.",[214,250,251,252,255,256,260],{},"In an ASP.NET Core application, the ",[234,253,254],{},"OpenFeature.Hosting"," package does that wiring for you. Everything on this page applies either way, see ",[218,257,259],{"href":258},"#aspnet-core","ASP.NET Core"," further below.",[209,262,264],{"id":263},"installation","Installation",[214,266,267,268],{},"The provider can be installed from NuGet: ",[218,269,205],{"href":205,"rel":270,"target":223},[222],[214,272,273,274,277,278,281],{},"The OpenFeature .NET SDK (",[234,275,276],{},"OpenFeature",") and the ConfigDirector .NET SDK (",[234,279,280],{},"ConfigDirector.ServerSdk",") are included as dependencies.",[283,284],"content-partial",{"name":285},"sdks\u002Fopenfeature-dotnet\u002Finstall",[209,287,289],{"id":288},"configure-and-initialize-the-client","Configure and initialize the client",[291,292,293,301,304],"ol",{},[294,295,296,297,300],"li",{},"Create an instance of the provider using your server SDK key. You can retrieve a server SDK key for each environment under ",[234,298,299],{},"SDK Keys"," in the dashboard's navigation panel.",[294,302,303],{},"Set the OpenFeature provider.",[294,305,306],{},"Get a client instance from OpenFeature.",[283,308],{"name":309},"sdks\u002Fopenfeature-dotnet\u002Fconfigure",[311,312,313],"warning",{},"Server SDK keys are secret values. Do not commit them to your source code repository. Provide them at runtime via environment variables instead.",[214,315,316,319,320,323,324,327],{},[234,317,318],{},"SetProviderAsync"," completes when the initial config state arrives or the configured timeout elapses, and it does not throw on a connection failure. Until config state arrives, evaluations return the default value with the ",[234,321,322],{},"PROVIDER_NOT_READY"," error code, and the provider continues to connect in the background. Check ",[234,325,326],{},"client.ProviderStatus"," to find out whether config state actually arrived:",[329,330,336],"pre",{"className":331,"code":332,"filename":333,"language":334,"meta":335,"style":335},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","using OpenFeature.Constant;\n\nvar ready = client.ProviderStatus == ProviderStatus.Ready;\n","ConfigDirectorSetup.cs","csharp","",[234,337,338,360,366],{"__ignoreMap":335},[339,340,343,347,351,354,357],"span",{"class":341,"line":342},"line",1,[339,344,346],{"class":345},"sw1J6","using",[339,348,350],{"class":349},"sfCm-"," OpenFeature",[339,352,229],{"class":353},"sP7_E",[339,355,356],{"class":349},"Constant",[339,358,359],{"class":353},";\n",[339,361,363],{"class":341,"line":362},2,[339,364,365],{"emptyLinePlaceholder":39},"\n",[339,367,369,373,377,381,385,387,390,393,396,398,401],{"class":341,"line":368},3,[339,370,372],{"class":371},"sG8yY","var",[339,374,376],{"class":375},"sbgvK"," ready",[339,378,380],{"class":379},"smGrS"," =",[339,382,384],{"class":383},"su5hD"," client",[339,386,229],{"class":353},[339,388,389],{"class":383},"ProviderStatus ",[339,391,392],{"class":379},"==",[339,394,395],{"class":383}," ProviderStatus",[339,397,229],{"class":353},[339,399,400],{"class":383},"Ready",[339,402,359],{"class":353},[404,405,407],"h3",{"id":406},"additional-configuration-options","Additional configuration options",[214,409,410,411,414],{},"Additional configuration options can be passed into the provider in the optional second argument of the constructor, which takes the same ",[234,412,413],{},"ConfigDirectorClientOptions"," the .NET SDK client does.",[214,416,417,418,421],{},"For example, the ",[234,419,420],{},"Metadata"," can be provided like this:",[329,423,425],{"className":331,"code":424,"filename":333,"language":334,"meta":335,"style":335},"using ConfigDirector;\nusing ConfigDirector.OpenFeature;\n\nvar provider = new ConfigDirectorProvider(\"YOUR-SERVER-SDK-KEY\", new ConfigDirectorClientOptions\n{\n    Metadata = new Metadata { AppName = \"YOUR-APP-NAME\", AppVersion = \"1.0.2\" },\n});\n",[234,426,427,436,448,452,489,495,542],{"__ignoreMap":335},[339,428,429,431,434],{"class":341,"line":342},[339,430,346],{"class":345},[339,432,433],{"class":349}," ConfigDirector",[339,435,359],{"class":353},[339,437,438,440,442,444,446],{"class":341,"line":362},[339,439,346],{"class":345},[339,441,433],{"class":349},[339,443,229],{"class":353},[339,445,276],{"class":349},[339,447,359],{"class":353},[339,449,450],{"class":341,"line":368},[339,451,365],{"emptyLinePlaceholder":39},[339,453,455,457,460,462,465,468,471,475,479,481,484,486],{"class":341,"line":454},4,[339,456,372],{"class":371},[339,458,459],{"class":375}," provider",[339,461,380],{"class":379},[339,463,464],{"class":379}," new",[339,466,467],{"class":375}," ConfigDirectorProvider",[339,469,470],{"class":353},"(",[339,472,474],{"class":473},"sjJ54","\"",[339,476,478],{"class":477},"s_sjI","YOUR-SERVER-SDK-KEY",[339,480,474],{"class":473},[339,482,483],{"class":353},",",[339,485,464],{"class":379},[339,487,488],{"class":375}," ConfigDirectorClientOptions\n",[339,490,492],{"class":341,"line":491},5,[339,493,494],{"class":353},"{\n",[339,496,498,501,504,506,509,512,515,517,520,523,525,527,530,532,534,537,539],{"class":341,"line":497},6,[339,499,500],{"class":383},"    Metadata ",[339,502,503],{"class":379},"=",[339,505,464],{"class":379},[339,507,508],{"class":375}," Metadata",[339,510,511],{"class":353}," {",[339,513,514],{"class":383}," AppName ",[339,516,503],{"class":379},[339,518,519],{"class":473}," \"",[339,521,522],{"class":477},"YOUR-APP-NAME",[339,524,474],{"class":473},[339,526,483],{"class":353},[339,528,529],{"class":383}," AppVersion ",[339,531,503],{"class":379},[339,533,519],{"class":473},[339,535,536],{"class":477},"1.0.2",[339,538,474],{"class":473},[339,540,541],{"class":353}," },\n",[339,543,545],{"class":341,"line":544},7,[339,546,547],{"class":353},"});\n",[214,549,550,551,553,554,553,557,560,561,564,565,229],{},"The provider accepts the same ",[234,552,420],{},", ",[234,555,556],{},"LoggerFactory",[234,558,559],{},"Connection",", and ",[234,562,563],{},"Telemetry"," options as the .NET SDK client, ",[218,566,568],{"href":567},"\u002Fsdks\u002Fserver\u002Fdotnet#additional-configuration-options","refer to the additional configuration options section of the .NET SDK for a full list",[404,570,572],{"id":571},"shut-down","Shut down",[214,574,575],{},"Shutting OpenFeature down closes the provider, which closes its connections and reports any pending telemetry:",[329,577,580],{"className":331,"code":578,"filename":579,"language":334,"meta":335,"style":335},"await Api.Instance.ShutdownAsync();\n","Program.cs",[234,581,582],{"__ignoreMap":335},[339,583,584,587,590,592,595,597,601],{"class":341,"line":342},[339,585,586],{"class":379},"await",[339,588,589],{"class":383}," Api",[339,591,229],{"class":353},[339,593,594],{"class":383},"Instance",[339,596,229],{"class":353},[339,598,600],{"class":599},"sGLFI","ShutdownAsync",[339,602,603],{"class":353},"();\n",[209,605,607],{"id":606},"retrieve-config-values","Retrieve config values",[214,609,610],{},"To retrieve config values, use the OpenFeature client:",[283,612],{"name":613},"sdks\u002Fopenfeature-dotnet\u002Fsimple-usage",[214,615,616],{},"Each OpenFeature getter maps to a ConfigDirector config type:",[618,619,620,633],"table",{},[621,622,623],"thead",{},[624,625,626,630],"tr",{},[627,628,629],"th",{},"OpenFeature getter",[627,631,632],{},"ConfigDirector config value",[634,635,636,647,657,670],"tbody",{},[624,637,638,644],{},[639,640,641],"td",{},[234,642,643],{},"GetBooleanValueAsync",[639,645,646],{},"Boolean",[624,648,649,654],{},[639,650,651],{},[234,652,653],{},"GetStringValueAsync",[639,655,656],{},"String or enum",[624,658,659,667],{},[639,660,661,553,664],{},[234,662,663],{},"GetIntegerValueAsync",[234,665,666],{},"GetDoubleValueAsync",[639,668,669],{},"Number",[624,671,672,677],{},[639,673,674],{},[234,675,676],{},"GetObjectValueAsync",[639,678,679],{},"JSON object or JSON array",[214,681,682,684,685,688,689,692],{},[234,683,676],{}," returns the config's JSON as an OpenFeature ",[234,686,687],{},"Value",", whatever shape it is: a ",[234,690,691],{},"Structure"," for a JSON object or a list for a JSON array, with nested values inside. Numbers inside it are doubles, as OpenFeature represents every number. The default value is returned only when the config cannot be read.",[329,694,696],{"className":331,"code":695,"filename":579,"language":334,"meta":335,"style":335},"using OpenFeature.Model;\n\nvar settings = await client.GetObjectValueAsync(\"my-json-config-key\", new Value(Structure.Empty));\nvar theme = settings.AsStructure?.GetValue(\"theme\").AsString;\n",[234,697,698,711,715,761],{"__ignoreMap":335},[339,699,700,702,704,706,709],{"class":341,"line":342},[339,701,346],{"class":345},[339,703,350],{"class":349},[339,705,229],{"class":353},[339,707,708],{"class":349},"Model",[339,710,359],{"class":353},[339,712,713],{"class":341,"line":362},[339,714,365],{"emptyLinePlaceholder":39},[339,716,717,719,722,724,727,729,731,733,735,737,740,742,744,746,749,751,753,755,758],{"class":341,"line":368},[339,718,372],{"class":371},[339,720,721],{"class":375}," settings",[339,723,380],{"class":379},[339,725,726],{"class":379}," await",[339,728,384],{"class":383},[339,730,229],{"class":353},[339,732,676],{"class":599},[339,734,470],{"class":353},[339,736,474],{"class":473},[339,738,739],{"class":477},"my-json-config-key",[339,741,474],{"class":473},[339,743,483],{"class":353},[339,745,464],{"class":379},[339,747,748],{"class":375}," Value",[339,750,470],{"class":353},[339,752,691],{"class":383},[339,754,229],{"class":353},[339,756,757],{"class":383},"Empty",[339,759,760],{"class":353},"));\n",[339,762,763,765,768,770,772,774,777,780,782,785,787,789,792,794,797,800],{"class":341,"line":454},[339,764,372],{"class":371},[339,766,767],{"class":375}," theme",[339,769,380],{"class":379},[339,771,721],{"class":383},[339,773,229],{"class":353},[339,775,776],{"class":383},"AsStructure",[339,778,779],{"class":379},"?",[339,781,229],{"class":353},[339,783,784],{"class":599},"GetValue",[339,786,470],{"class":353},[339,788,474],{"class":473},[339,790,791],{"class":477},"theme",[339,793,474],{"class":473},[339,795,796],{"class":353},").",[339,798,799],{"class":383},"AsString",[339,801,359],{"class":353},[214,803,804,805,229],{},"For additional information regarding the OpenFeature client ",[218,806,808],{"href":220,"rel":807,"target":223},[222],"refer to the OpenFeature .NET SDK documentation",[404,810,812],{"id":811},"evaluation-details","Evaluation details",[214,814,815,816,819],{},"The detailed getters of the OpenFeature client, such as ",[234,817,818],{},"GetBooleanDetailsAsync",", report why an evaluation produced the value that it did:",[618,821,822,835],{},[621,823,824],{},[624,825,826,829,832],{},[627,827,828],{},"Outcome",[627,830,831],{},"Reason",[627,833,834],{},"Error code",[634,836,837,849,861,876,889,903],{},[624,838,839,842,847],{},[639,840,841],{},"A value was found",[639,843,844],{},[234,845,846],{},"TARGETING_MATCH",[639,848],{},[624,850,851,854,859],{},[639,852,853],{},"The config carries no value",[639,855,856],{},[234,857,858],{},"DEFAULT",[639,860],{},[624,862,863,866,871],{},[639,864,865],{},"The config key is unknown",[639,867,868],{},[234,869,870],{},"ERROR",[639,872,873],{},[234,874,875],{},"FLAG_NOT_FOUND",[624,877,878,881,885],{},[639,879,880],{},"No config state has arrived yet",[639,882,883],{},[234,884,870],{},[639,886,887],{},[234,888,322],{},[624,890,891,894,898],{},[639,892,893],{},"The value does not match the requested type",[639,895,896],{},[234,897,870],{},[639,899,900],{},[234,901,902],{},"TYPE_MISMATCH",[624,904,905,908,912],{},[639,906,907],{},"The provider has been shut down",[639,909,910],{},[234,911,870],{},[639,913,914],{},[234,915,916],{},"PROVIDER_FATAL",[214,918,919,920,923],{},"When a value was found, the ",[234,921,922],{},"Variant"," is ConfigDirector's identifier for that value. In every other case the default value is returned.",[209,925,927],{"id":926},"user-context","User context",[283,929],{"name":930},"sdks\u002Fopenfeature-dotnet\u002Fuser-context",[214,932,933],{},"The evaluation context maps onto the ConfigDirector user context as follows:",[618,935,936,946],{},[621,937,938],{},[624,939,940,943],{},[627,941,942],{},"OpenFeature evaluation context",[627,944,945],{},"ConfigDirector user context",[634,947,948,962,975,988],{},[624,949,950,957],{},[639,951,952,953,956],{},"The targeting key, or otherwise an ",[234,954,955],{},"id"," attribute",[639,958,959],{},[234,960,961],{},"Id",[624,963,964,970],{},[639,965,966,967,956],{},"The ",[234,968,969],{},"name",[639,971,972],{},[234,973,974],{},"Name",[624,976,977,983],{},[639,978,966,979,982],{},[234,980,981],{},"traits"," structure attribute",[639,984,985],{},[234,986,987],{},"Traits",[624,989,990,996],{},[639,991,992,993,956],{},"The boolean ",[234,994,995],{},"anonymous",[639,997,998],{},[234,999,1000],{},"Anonymous",[214,1002,804,1003,229],{},[218,1004,808],{"href":220,"rel":1005,"target":223},[222],[209,1007,1009],{"id":1008},"events","Events",[214,1011,1012,1013,1016],{},"The provider emits ",[234,1014,1015],{},"PROVIDER_CONFIGURATION_CHANGED"," whenever configs are updated on the dashboard or via the admin API, carrying the keys of the configs in the update:",[329,1018,1020],{"className":331,"code":1019,"filename":579,"language":334,"meta":335,"style":335},"using OpenFeature;\nusing OpenFeature.Constant;\n\nApi.Instance.AddHandler(\n    ProviderEventTypes.ProviderConfigurationChanged,\n    payload => Console.WriteLine($\"Configs updated: {string.Join(\", \", payload?.FlagsChanged ?? [])}\"));\n",[234,1021,1022,1030,1042,1046,1063,1076],{"__ignoreMap":335},[339,1023,1024,1026,1028],{"class":341,"line":342},[339,1025,346],{"class":345},[339,1027,350],{"class":349},[339,1029,359],{"class":353},[339,1031,1032,1034,1036,1038,1040],{"class":341,"line":362},[339,1033,346],{"class":345},[339,1035,350],{"class":349},[339,1037,229],{"class":353},[339,1039,356],{"class":349},[339,1041,359],{"class":353},[339,1043,1044],{"class":341,"line":368},[339,1045,365],{"emptyLinePlaceholder":39},[339,1047,1048,1051,1053,1055,1057,1060],{"class":341,"line":454},[339,1049,1050],{"class":383},"Api",[339,1052,229],{"class":353},[339,1054,594],{"class":383},[339,1056,229],{"class":353},[339,1058,1059],{"class":599},"AddHandler",[339,1061,1062],{"class":353},"(\n",[339,1064,1065,1068,1070,1073],{"class":341,"line":491},[339,1066,1067],{"class":383},"    ProviderEventTypes",[339,1069,229],{"class":353},[339,1071,1072],{"class":383},"ProviderConfigurationChanged",[339,1074,1075],{"class":353},",\n",[339,1077,1078,1081,1084,1087,1089,1092,1094,1097,1100,1103,1106,1108,1111,1113,1115,1117,1119,1121,1124,1126,1128,1131,1134,1137,1139],{"class":341,"line":497},[339,1079,1080],{"class":375},"    payload",[339,1082,1083],{"class":379}," =>",[339,1085,1086],{"class":383}," Console",[339,1088,229],{"class":353},[339,1090,1091],{"class":599},"WriteLine",[339,1093,470],{"class":353},[339,1095,1096],{"class":473},"$\"",[339,1098,1099],{"class":477},"Configs updated: ",[339,1101,1102],{"class":473},"{",[339,1104,1105],{"class":379},"string",[339,1107,229],{"class":473},[339,1109,1110],{"class":599},"Join",[339,1112,470],{"class":473},[339,1114,474],{"class":473},[339,1116,553],{"class":477},[339,1118,474],{"class":473},[339,1120,483],{"class":473},[339,1122,1123],{"class":383}," payload",[339,1125,779],{"class":379},[339,1127,229],{"class":473},[339,1129,1130],{"class":383},"FlagsChanged",[339,1132,1133],{"class":379}," ??",[339,1135,1136],{"class":473}," [])}",[339,1138,474],{"class":473},[339,1140,760],{"class":353},[214,1142,1143,1144,1147,1148,1150],{},"It emits ",[234,1145,1146],{},"PROVIDER_READY"," when the initial config state arrives after ",[234,1149,318],{}," has already returned.",[209,1152,259],{"id":1153},"aspnet-core",[214,1155,966,1156,1158],{},[234,1157,254],{}," package registers OpenFeature with the host. It initializes the provider as the host starts, before the server begins listening, so no request is served config defaults while the first config state is still in flight, and it shuts the provider down when the host stops, which closes the ConfigDirector client.",[329,1160,1164],{"className":1161,"code":1162,"language":1163,"meta":335,"style":335},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","dotnet add package OpenFeature.Hosting\n","bash",[234,1165,1166],{"__ignoreMap":335},[339,1167,1168,1171,1174,1177],{"class":341,"line":342},[339,1169,1170],{"class":375},"dotnet",[339,1172,1173],{"class":477}," add",[339,1175,1176],{"class":477}," package",[339,1178,1179],{"class":477}," OpenFeature.Hosting\n",[214,1181,1182,1183,1186],{},"Register the provider through the OpenFeature builder, and take ",[234,1184,1185],{},"IFeatureClient"," from the container wherever a config is read:",[329,1188,1190],{"className":331,"code":1189,"filename":579,"language":334,"meta":335,"style":335},"using ConfigDirector;\nusing ConfigDirector.OpenFeature;\nusing OpenFeature;\n\nvar builder = WebApplication.CreateBuilder(args);\n\nbuilder.Services.AddOpenFeature(openFeature =>\n    openFeature.AddProvider(services => new ConfigDirectorProvider(\n        builder.Configuration[\"ConfigDirector:ServerSdkKey\"]!,\n        new ConfigDirectorClientOptions\n        {\n            LoggerFactory = services.GetRequiredService\u003CILoggerFactory>(),\n        })));\n\nvar app = builder.Build();\n\napp.MapGet(\"\u002Fcheckout\", async (IFeatureClient client) =>\n    await client.GetBooleanValueAsync(\"new-checkout\", false));\n\napp.Run();\n",[234,1191,1192,1200,1212,1220,1224,1249,1253,1276,1300,1329,1337,1343,1368,1374,1379,1398,1403,1441,1470,1475],{"__ignoreMap":335},[339,1193,1194,1196,1198],{"class":341,"line":342},[339,1195,346],{"class":345},[339,1197,433],{"class":349},[339,1199,359],{"class":353},[339,1201,1202,1204,1206,1208,1210],{"class":341,"line":362},[339,1203,346],{"class":345},[339,1205,433],{"class":349},[339,1207,229],{"class":353},[339,1209,276],{"class":349},[339,1211,359],{"class":353},[339,1213,1214,1216,1218],{"class":341,"line":368},[339,1215,346],{"class":345},[339,1217,350],{"class":349},[339,1219,359],{"class":353},[339,1221,1222],{"class":341,"line":454},[339,1223,365],{"emptyLinePlaceholder":39},[339,1225,1226,1228,1231,1233,1236,1238,1241,1243,1246],{"class":341,"line":491},[339,1227,372],{"class":371},[339,1229,1230],{"class":375}," builder",[339,1232,380],{"class":379},[339,1234,1235],{"class":383}," WebApplication",[339,1237,229],{"class":353},[339,1239,1240],{"class":599},"CreateBuilder",[339,1242,470],{"class":353},[339,1244,1245],{"class":383},"args",[339,1247,1248],{"class":353},");\n",[339,1250,1251],{"class":341,"line":497},[339,1252,365],{"emptyLinePlaceholder":39},[339,1254,1255,1258,1260,1263,1265,1268,1270,1273],{"class":341,"line":544},[339,1256,1257],{"class":383},"builder",[339,1259,229],{"class":353},[339,1261,1262],{"class":383},"Services",[339,1264,229],{"class":353},[339,1266,1267],{"class":599},"AddOpenFeature",[339,1269,470],{"class":353},[339,1271,1272],{"class":375},"openFeature",[339,1274,1275],{"class":379}," =>\n",[339,1277,1279,1282,1284,1287,1289,1292,1294,1296,1298],{"class":341,"line":1278},8,[339,1280,1281],{"class":383},"    openFeature",[339,1283,229],{"class":353},[339,1285,1286],{"class":599},"AddProvider",[339,1288,470],{"class":353},[339,1290,1291],{"class":375},"services",[339,1293,1083],{"class":379},[339,1295,464],{"class":379},[339,1297,467],{"class":375},[339,1299,1062],{"class":353},[339,1301,1303,1306,1308,1311,1314,1316,1319,1321,1324,1327],{"class":341,"line":1302},9,[339,1304,1305],{"class":383},"        builder",[339,1307,229],{"class":353},[339,1309,1310],{"class":383},"Configuration",[339,1312,1313],{"class":353},"[",[339,1315,474],{"class":473},[339,1317,1318],{"class":477},"ConfigDirector:ServerSdkKey",[339,1320,474],{"class":473},[339,1322,1323],{"class":353},"]",[339,1325,1326],{"class":379},"!",[339,1328,1075],{"class":353},[339,1330,1332,1335],{"class":341,"line":1331},10,[339,1333,1334],{"class":379},"        new",[339,1336,488],{"class":375},[339,1338,1340],{"class":341,"line":1339},11,[339,1341,1342],{"class":353},"        {\n",[339,1344,1346,1349,1351,1354,1356,1359,1362,1365],{"class":341,"line":1345},12,[339,1347,1348],{"class":383},"            LoggerFactory ",[339,1350,503],{"class":379},[339,1352,1353],{"class":383}," services",[339,1355,229],{"class":353},[339,1357,1358],{"class":599},"GetRequiredService",[339,1360,1361],{"class":353},"\u003C",[339,1363,1364],{"class":375},"ILoggerFactory",[339,1366,1367],{"class":353},">(),\n",[339,1369,1371],{"class":341,"line":1370},13,[339,1372,1373],{"class":353},"        })));\n",[339,1375,1377],{"class":341,"line":1376},14,[339,1378,365],{"emptyLinePlaceholder":39},[339,1380,1382,1384,1387,1389,1391,1393,1396],{"class":341,"line":1381},15,[339,1383,372],{"class":371},[339,1385,1386],{"class":375}," app",[339,1388,380],{"class":379},[339,1390,1230],{"class":383},[339,1392,229],{"class":353},[339,1394,1395],{"class":599},"Build",[339,1397,603],{"class":353},[339,1399,1401],{"class":341,"line":1400},16,[339,1402,365],{"emptyLinePlaceholder":39},[339,1404,1406,1409,1411,1414,1416,1418,1421,1423,1425,1429,1432,1434,1436,1439],{"class":341,"line":1405},17,[339,1407,1408],{"class":383},"app",[339,1410,229],{"class":353},[339,1412,1413],{"class":599},"MapGet",[339,1415,470],{"class":353},[339,1417,474],{"class":473},[339,1419,1420],{"class":477},"\u002Fcheckout",[339,1422,474],{"class":473},[339,1424,483],{"class":353},[339,1426,1428],{"class":1427},"sbsja"," async",[339,1430,1431],{"class":353}," (",[339,1433,1185],{"class":375},[339,1435,384],{"class":375},[339,1437,1438],{"class":353},")",[339,1440,1275],{"class":379},[339,1442,1444,1447,1449,1451,1453,1455,1457,1460,1462,1464,1468],{"class":341,"line":1443},18,[339,1445,1446],{"class":379},"    await",[339,1448,384],{"class":383},[339,1450,229],{"class":353},[339,1452,643],{"class":599},[339,1454,470],{"class":353},[339,1456,474],{"class":473},[339,1458,1459],{"class":477},"new-checkout",[339,1461,474],{"class":473},[339,1463,483],{"class":353},[339,1465,1467],{"class":1466},"syTEX"," false",[339,1469,760],{"class":353},[339,1471,1473],{"class":341,"line":1472},19,[339,1474,365],{"emptyLinePlaceholder":39},[339,1476,1478,1480,1482,1485],{"class":341,"line":1477},20,[339,1479,1408],{"class":383},[339,1481,229],{"class":353},[339,1483,1484],{"class":599},"Run",[339,1486,603],{"class":353},[1488,1489,1490,1492,1493,1495,1496,1499,1500,1502,1503,560,1505,1507],"note",{},[234,1491,1267],{}," drives its own ",[234,1494,1050],{}," instance rather than the static ",[234,1497,1498],{},"Api.Instance",", so the provider registered this way is not reachable through ",[234,1501,1498],{},". Take ",[234,1504,1185],{},[234,1506,1050],{}," if you need it, from the container instead.",[214,1509,1510],{},"Event handlers are registered on the same builder. They attach once the provider has initialized, so they see the updates that follow startup:",[329,1512,1514],{"className":331,"code":1513,"filename":579,"language":334,"meta":335,"style":335},"using OpenFeature.Constant;\n\nbuilder.Services.AddOpenFeature(openFeature =>\n{\n    openFeature.AddProvider(_ => new ConfigDirectorProvider(builder.Configuration[\"ConfigDirector:ServerSdkKey\"]!));\n\n    openFeature.AddHandler(ProviderEventTypes.ProviderConfigurationChanged, services =>\n    {\n        var logger = services.GetRequiredService\u003CILoggerFactory>().CreateLogger(\"ConfigDirector\");\n        return payload => logger.LogInformation(\"Configs updated: {Keys}\", payload?.FlagsChanged);\n    });\n});\n",[234,1515,1516,1528,1532,1550,1554,1595,1599,1622,1627,1664,1702,1707],{"__ignoreMap":335},[339,1517,1518,1520,1522,1524,1526],{"class":341,"line":342},[339,1519,346],{"class":345},[339,1521,350],{"class":349},[339,1523,229],{"class":353},[339,1525,356],{"class":349},[339,1527,359],{"class":353},[339,1529,1530],{"class":341,"line":362},[339,1531,365],{"emptyLinePlaceholder":39},[339,1533,1534,1536,1538,1540,1542,1544,1546,1548],{"class":341,"line":368},[339,1535,1257],{"class":383},[339,1537,229],{"class":353},[339,1539,1262],{"class":383},[339,1541,229],{"class":353},[339,1543,1267],{"class":599},[339,1545,470],{"class":353},[339,1547,1272],{"class":375},[339,1549,1275],{"class":379},[339,1551,1552],{"class":341,"line":454},[339,1553,494],{"class":353},[339,1555,1556,1558,1560,1562,1564,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593],{"class":341,"line":491},[339,1557,1281],{"class":383},[339,1559,229],{"class":353},[339,1561,1286],{"class":599},[339,1563,470],{"class":353},[339,1565,1566],{"class":375},"_",[339,1568,1083],{"class":379},[339,1570,464],{"class":379},[339,1572,467],{"class":375},[339,1574,470],{"class":353},[339,1576,1257],{"class":383},[339,1578,229],{"class":353},[339,1580,1310],{"class":383},[339,1582,1313],{"class":353},[339,1584,474],{"class":473},[339,1586,1318],{"class":477},[339,1588,474],{"class":473},[339,1590,1323],{"class":353},[339,1592,1326],{"class":379},[339,1594,760],{"class":353},[339,1596,1597],{"class":341,"line":497},[339,1598,365],{"emptyLinePlaceholder":39},[339,1600,1601,1603,1605,1607,1609,1612,1614,1616,1618,1620],{"class":341,"line":544},[339,1602,1281],{"class":383},[339,1604,229],{"class":353},[339,1606,1059],{"class":599},[339,1608,470],{"class":353},[339,1610,1611],{"class":383},"ProviderEventTypes",[339,1613,229],{"class":353},[339,1615,1072],{"class":383},[339,1617,483],{"class":353},[339,1619,1353],{"class":375},[339,1621,1275],{"class":379},[339,1623,1624],{"class":341,"line":1278},[339,1625,1626],{"class":353},"    {\n",[339,1628,1629,1632,1635,1637,1639,1641,1643,1645,1647,1650,1653,1655,1657,1660,1662],{"class":341,"line":1302},[339,1630,1631],{"class":371},"        var",[339,1633,1634],{"class":375}," logger",[339,1636,380],{"class":379},[339,1638,1353],{"class":383},[339,1640,229],{"class":353},[339,1642,1358],{"class":599},[339,1644,1361],{"class":353},[339,1646,1364],{"class":375},[339,1648,1649],{"class":353},">().",[339,1651,1652],{"class":599},"CreateLogger",[339,1654,470],{"class":353},[339,1656,474],{"class":473},[339,1658,1659],{"class":477},"ConfigDirector",[339,1661,474],{"class":473},[339,1663,1248],{"class":353},[339,1665,1666,1670,1672,1674,1676,1678,1681,1683,1685,1688,1690,1692,1694,1696,1698,1700],{"class":341,"line":1331},[339,1667,1669],{"class":1668},"sVHd0","        return",[339,1671,1123],{"class":375},[339,1673,1083],{"class":379},[339,1675,1634],{"class":383},[339,1677,229],{"class":353},[339,1679,1680],{"class":599},"LogInformation",[339,1682,470],{"class":353},[339,1684,474],{"class":473},[339,1686,1687],{"class":477},"Configs updated: {Keys}",[339,1689,474],{"class":473},[339,1691,483],{"class":353},[339,1693,1123],{"class":383},[339,1695,779],{"class":379},[339,1697,229],{"class":353},[339,1699,1130],{"class":383},[339,1701,1248],{"class":353},[339,1703,1704],{"class":341,"line":1339},[339,1705,1706],{"class":353},"    });\n",[339,1708,1709],{"class":341,"line":1345},[339,1710,547],{"class":353},[311,1712,1713],{},"Never build a provider per request. Each one holds its own ConfigDirector client and connection, initialization does network I\u002FO, and a fresh provider serves defaults until its first config state arrives.",[1715,1716,1717],"style",{},"html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sfCm-, html code.shiki .sfCm-{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":335,"searchDepth":362,"depth":362,"links":1719},[1720,1721,1722,1726,1729,1730,1731],{"id":211,"depth":362,"text":212},{"id":263,"depth":362,"text":264},{"id":288,"depth":362,"text":289,"children":1723},[1724,1725],{"id":406,"depth":368,"text":407},{"id":571,"depth":368,"text":572},{"id":606,"depth":362,"text":607,"children":1727},[1728],{"id":811,"depth":368,"text":812},{"id":926,"depth":362,"text":927},{"id":1008,"depth":362,"text":1009},{"id":1153,"depth":362,"text":259},"ConfigDirector Provider for the OpenFeature .NET SDK","md",null,{"modifiedAt":1736},"2026-09-23T20:03:18.000Z",{"title":133,"icon":139,"icons":1738},[139,136],{"title":194,"description":1732},"HRGpZ0Wm36CxngiGXARWbMzSvexYcEC9c56m9GxA3mU",[1742,1745],{"title":128,"path":169,"stem":170,"description":1743,"icon":139,"icons":1744,"children":-1},"ConfigDirector Provider for the OpenFeature Java SDK",[139,131],{"title":183,"path":184,"stem":185,"description":1746,"icon":186,"children":-1},"Manage projects, environments, configs, and targeting rules as code with the ConfigDirector Terraform provider",{"id":1748,"title":1749,"body":1750,"description":335,"extension":1733,"meta":1849,"navigation":6,"path":1850,"seo":1851,"stem":1852,"__hash__":1853},"partials\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Finstall.md","Install",{"type":196,"value":1751,"toc":1847},[1752,1844],[1753,1754,1755,1780],"code-group",{},[329,1756,1759],{"className":1161,"code":1757,"filename":1758,"language":1163,"meta":335,"style":335},"dotnet add package ConfigDirector.OpenFeature.ServerProvider --version 1.1.0\n",".NET CLI",[234,1760,1761],{"__ignoreMap":335},[339,1762,1763,1765,1767,1769,1772,1776],{"class":341,"line":342},[339,1764,1170],{"class":375},[339,1766,1173],{"class":477},[339,1768,1176],{"class":477},[339,1770,1771],{"class":477}," ConfigDirector.OpenFeature.ServerProvider",[339,1773,1775],{"class":1774},"stzsN"," --version",[339,1777,1779],{"class":1778},"srdBf"," 1.1.0\n",[329,1781,1786],{"className":1782,"code":1783,"filename":1784,"language":1785,"meta":335,"style":335},"language-xml shiki shiki-themes material-theme-lighter github-light github-dark","\u003CItemGroup>\n  \u003CPackageReference Include=\"ConfigDirector.OpenFeature.ServerProvider\" Version=\"1.1.0\" \u002F>\n\u003C\u002FItemGroup>\n",".csproj","xml",[234,1787,1788,1799,1835],{"__ignoreMap":335},[339,1789,1790,1792,1796],{"class":341,"line":342},[339,1791,1361],{"class":353},[339,1793,1795],{"class":1794},"sQzsp","ItemGroup",[339,1797,1798],{"class":353},">\n",[339,1800,1801,1804,1807,1811,1813,1815,1818,1820,1823,1825,1827,1830,1832],{"class":341,"line":362},[339,1802,1803],{"class":353},"  \u003C",[339,1805,1806],{"class":1794},"PackageReference",[339,1808,1810],{"class":1809},"s9AJx"," Include",[339,1812,503],{"class":353},[339,1814,474],{"class":473},[339,1816,1817],{"class":477},"ConfigDirector.OpenFeature.ServerProvider",[339,1819,474],{"class":473},[339,1821,1822],{"class":1809}," Version",[339,1824,503],{"class":353},[339,1826,474],{"class":473},[339,1828,1829],{"class":477},"1.1.0",[339,1831,474],{"class":473},[339,1833,1834],{"class":353}," \u002F>\n",[339,1836,1837,1840,1842],{"class":341,"line":368},[339,1838,1839],{"class":353},"\u003C\u002F",[339,1841,1795],{"class":1794},[339,1843,1798],{"class":353},[1715,1845,1846],{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":335,"searchDepth":362,"depth":362,"links":1848},[],{},"\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Finstall",{"description":335},"_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Finstall","nvSTCuM-pIaaNqeuoVbsQbujK4MxC09X3csjr3ND-go",{"id":1855,"title":1856,"body":1857,"description":335,"extension":1733,"meta":1966,"navigation":6,"path":1967,"seo":1968,"stem":1969,"__hash__":1970},"partials\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fconfigure.md","Configure",{"type":196,"value":1858,"toc":1964},[1859,1961],[329,1860,1862],{"className":331,"code":1861,"filename":333,"language":334,"meta":335,"style":335},"using ConfigDirector.OpenFeature;\nusing OpenFeature;\n\n\u002F\u002F IMPORTANT: Do not commit the server SDK key to your source code, it is a secret value.\n\u002F\u002F Waits until the provider is initialized or it times out.\n\u002F\u002F If initialization times out, the provider will continue attempting to\n\u002F\u002F initialize in the background.\nawait Api.Instance.SetProviderAsync(new ConfigDirectorProvider(\"YOUR-SERVER-SDK-KEY\"));\nvar client = Api.Instance.GetClient();\n",[234,1863,1864,1876,1884,1888,1894,1899,1904,1909,1940],{"__ignoreMap":335},[339,1865,1866,1868,1870,1872,1874],{"class":341,"line":342},[339,1867,346],{"class":345},[339,1869,433],{"class":349},[339,1871,229],{"class":353},[339,1873,276],{"class":349},[339,1875,359],{"class":353},[339,1877,1878,1880,1882],{"class":341,"line":362},[339,1879,346],{"class":345},[339,1881,350],{"class":349},[339,1883,359],{"class":353},[339,1885,1886],{"class":341,"line":368},[339,1887,365],{"emptyLinePlaceholder":39},[339,1889,1890],{"class":341,"line":454},[339,1891,1893],{"class":1892},"sutJx","\u002F\u002F IMPORTANT: Do not commit the server SDK key to your source code, it is a secret value.\n",[339,1895,1896],{"class":341,"line":491},[339,1897,1898],{"class":1892},"\u002F\u002F Waits until the provider is initialized or it times out.\n",[339,1900,1901],{"class":341,"line":497},[339,1902,1903],{"class":1892},"\u002F\u002F If initialization times out, the provider will continue attempting to\n",[339,1905,1906],{"class":341,"line":544},[339,1907,1908],{"class":1892},"\u002F\u002F initialize in the background.\n",[339,1910,1911,1913,1915,1917,1919,1921,1923,1925,1928,1930,1932,1934,1936,1938],{"class":341,"line":1278},[339,1912,586],{"class":379},[339,1914,589],{"class":383},[339,1916,229],{"class":353},[339,1918,594],{"class":383},[339,1920,229],{"class":353},[339,1922,318],{"class":599},[339,1924,470],{"class":353},[339,1926,1927],{"class":379},"new",[339,1929,467],{"class":375},[339,1931,470],{"class":353},[339,1933,474],{"class":473},[339,1935,478],{"class":477},[339,1937,474],{"class":473},[339,1939,760],{"class":353},[339,1941,1942,1944,1946,1948,1950,1952,1954,1956,1959],{"class":341,"line":1302},[339,1943,372],{"class":371},[339,1945,384],{"class":375},[339,1947,380],{"class":379},[339,1949,589],{"class":383},[339,1951,229],{"class":353},[339,1953,594],{"class":383},[339,1955,229],{"class":353},[339,1957,1958],{"class":599},"GetClient",[339,1960,603],{"class":353},[1715,1962,1963],{},"html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sfCm-, html code.shiki .sfCm-{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}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":335,"searchDepth":362,"depth":362,"links":1965},[],{},"\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fconfigure",{"description":335},"_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fconfigure","vpqHQcRBNCElB3mzijPBJQ06opsf6iHcg4i9njP9DDs",{"id":1972,"title":1973,"body":1974,"description":335,"extension":1733,"meta":2059,"navigation":6,"path":2060,"seo":2061,"stem":2062,"__hash__":2063},"partials\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fsimple-usage.md","Simple Usage",{"type":196,"value":1975,"toc":2057},[1976,2054],[329,1977,1979],{"className":331,"code":1978,"filename":579,"language":334,"meta":335,"style":335},"var booleanValue = await client.GetBooleanValueAsync(\"my-config-key\", false);\n\nvar stringValue = await client.GetStringValueAsync(\"my-string-config-key\", \"Default\");\n",[234,1980,1981,2013,2017],{"__ignoreMap":335},[339,1982,1983,1985,1988,1990,1992,1994,1996,1998,2000,2002,2005,2007,2009,2011],{"class":341,"line":342},[339,1984,372],{"class":371},[339,1986,1987],{"class":375}," booleanValue",[339,1989,380],{"class":379},[339,1991,726],{"class":379},[339,1993,384],{"class":383},[339,1995,229],{"class":353},[339,1997,643],{"class":599},[339,1999,470],{"class":353},[339,2001,474],{"class":473},[339,2003,2004],{"class":477},"my-config-key",[339,2006,474],{"class":473},[339,2008,483],{"class":353},[339,2010,1467],{"class":1466},[339,2012,1248],{"class":353},[339,2014,2015],{"class":341,"line":362},[339,2016,365],{"emptyLinePlaceholder":39},[339,2018,2019,2021,2024,2026,2028,2030,2032,2034,2036,2038,2041,2043,2045,2047,2050,2052],{"class":341,"line":368},[339,2020,372],{"class":371},[339,2022,2023],{"class":375}," stringValue",[339,2025,380],{"class":379},[339,2027,726],{"class":379},[339,2029,384],{"class":383},[339,2031,229],{"class":353},[339,2033,653],{"class":599},[339,2035,470],{"class":353},[339,2037,474],{"class":473},[339,2039,2040],{"class":477},"my-string-config-key",[339,2042,474],{"class":473},[339,2044,483],{"class":353},[339,2046,519],{"class":473},[339,2048,2049],{"class":477},"Default",[339,2051,474],{"class":473},[339,2053,1248],{"class":353},[1715,2055,2056],{},"html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":335,"searchDepth":362,"depth":362,"links":2058},[],{},"\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fsimple-usage",{"description":335},"_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fsimple-usage","lu9tLfs6d1O9C1KOF7yjC5OOOJK6rnOcPWogu3omA7k",{"id":2065,"title":2066,"body":2067,"description":2071,"extension":1733,"meta":2271,"navigation":6,"path":2272,"seo":2273,"stem":2274,"__hash__":2275},"partials\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fuser-context.md","User Context",{"type":196,"value":2068,"toc":2269},[2069,2072,2266],[214,2070,2071],{},"The user context can be provided as the third argument to value getter methods of the OpenFeature client. The OpenFeature .NET provider evaluates targeting rules locally without additional network calls for different contexts.",[329,2073,2075],{"className":331,"code":2074,"filename":579,"language":334,"meta":335,"style":335},"using OpenFeature.Model;\n\nvar context = EvaluationContext.Builder()\n    .SetTargetingKey(\"12345\") \u002F\u002F In OpenFeature, the targeting key represents the context's user ID\n    .Set(\"name\", \"Example User\")\n    \u002F\u002F Any arbitrary traits which can be referenced in targeting rules\n    .Set(\"traits\", Structure.Builder().Set(\"region\", \"North America\").Build())\n    .Build();\n\nvar booleanValue = await client.GetBooleanValueAsync(\"my-config-key\", false, context);\n",[234,2076,2077,2089,2093,2113,2135,2162,2167,2220,2228,2232],{"__ignoreMap":335},[339,2078,2079,2081,2083,2085,2087],{"class":341,"line":342},[339,2080,346],{"class":345},[339,2082,350],{"class":349},[339,2084,229],{"class":353},[339,2086,708],{"class":349},[339,2088,359],{"class":353},[339,2090,2091],{"class":341,"line":362},[339,2092,365],{"emptyLinePlaceholder":39},[339,2094,2095,2097,2100,2102,2105,2107,2110],{"class":341,"line":368},[339,2096,372],{"class":371},[339,2098,2099],{"class":375}," context",[339,2101,380],{"class":379},[339,2103,2104],{"class":383}," EvaluationContext",[339,2106,229],{"class":353},[339,2108,2109],{"class":599},"Builder",[339,2111,2112],{"class":353},"()\n",[339,2114,2115,2118,2121,2123,2125,2128,2130,2132],{"class":341,"line":454},[339,2116,2117],{"class":353},"    .",[339,2119,2120],{"class":599},"SetTargetingKey",[339,2122,470],{"class":353},[339,2124,474],{"class":473},[339,2126,2127],{"class":477},"12345",[339,2129,474],{"class":473},[339,2131,1438],{"class":353},[339,2133,2134],{"class":1892}," \u002F\u002F In OpenFeature, the targeting key represents the context's user ID\n",[339,2136,2137,2139,2142,2144,2146,2148,2150,2152,2154,2157,2159],{"class":341,"line":491},[339,2138,2117],{"class":353},[339,2140,2141],{"class":599},"Set",[339,2143,470],{"class":353},[339,2145,474],{"class":473},[339,2147,969],{"class":477},[339,2149,474],{"class":473},[339,2151,483],{"class":353},[339,2153,519],{"class":473},[339,2155,2156],{"class":477},"Example User",[339,2158,474],{"class":473},[339,2160,2161],{"class":353},")\n",[339,2163,2164],{"class":341,"line":497},[339,2165,2166],{"class":1892},"    \u002F\u002F Any arbitrary traits which can be referenced in targeting rules\n",[339,2168,2169,2171,2173,2175,2177,2179,2181,2183,2186,2188,2190,2193,2195,2197,2199,2202,2204,2206,2208,2211,2213,2215,2217],{"class":341,"line":544},[339,2170,2117],{"class":353},[339,2172,2141],{"class":599},[339,2174,470],{"class":353},[339,2176,474],{"class":473},[339,2178,981],{"class":477},[339,2180,474],{"class":473},[339,2182,483],{"class":353},[339,2184,2185],{"class":383}," Structure",[339,2187,229],{"class":353},[339,2189,2109],{"class":599},[339,2191,2192],{"class":353},"().",[339,2194,2141],{"class":599},[339,2196,470],{"class":353},[339,2198,474],{"class":473},[339,2200,2201],{"class":477},"region",[339,2203,474],{"class":473},[339,2205,483],{"class":353},[339,2207,519],{"class":473},[339,2209,2210],{"class":477},"North America",[339,2212,474],{"class":473},[339,2214,796],{"class":353},[339,2216,1395],{"class":599},[339,2218,2219],{"class":353},"())\n",[339,2221,2222,2224,2226],{"class":341,"line":1278},[339,2223,2117],{"class":353},[339,2225,1395],{"class":599},[339,2227,603],{"class":353},[339,2229,2230],{"class":341,"line":1302},[339,2231,365],{"emptyLinePlaceholder":39},[339,2233,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264],{"class":341,"line":1331},[339,2235,372],{"class":371},[339,2237,1987],{"class":375},[339,2239,380],{"class":379},[339,2241,726],{"class":379},[339,2243,384],{"class":383},[339,2245,229],{"class":353},[339,2247,643],{"class":599},[339,2249,470],{"class":353},[339,2251,474],{"class":473},[339,2253,2004],{"class":477},[339,2255,474],{"class":473},[339,2257,483],{"class":353},[339,2259,1467],{"class":1466},[339,2261,483],{"class":353},[339,2263,2099],{"class":383},[339,2265,1248],{"class":353},[1715,2267,2268],{},"html pre.shiki code .sw1J6, html code.shiki .sw1J6{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sfCm-, html code.shiki .sfCm-{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":335,"searchDepth":362,"depth":362,"links":2270},[],{},"\u002F_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fuser-context",{"description":2071},"_partials\u002Fsdks\u002Fopenfeature-dotnet\u002Fuser-context","dUOW_rMt1QCtg3VUQzKuTsq5ebwghgg_5NfeXnK2C_Y",1790194358310]