Open 3GDXC opened 7 months ago
Hey @3GDXC I'm not a contributor or anything, so apologies if this sounds out of the blue... But why is ordered matter here?
Hey @3GDXC I'm not a contributor or anything, so apologies if this sounds out of the blue... But why is ordered matter here?
the order is preserved as the configuration may be used for things like; menu items creation or middleware injection and doing so in the correct order would be wrong; a developer could of create a indexed object structure, but the behavior of config IMHO shouldn't introduce any ordering unless EXPLICITLY required by the developer.
Configuration section "Menu": { "Home": "#", "General Feedback": "/Questionnaire?form=1", "Request Callback": "/Questionnaire?form=2", "Raise Complaint": "/Questionnaire?form=3" }
var menu = new Dictionary<string,string>(); configuration.Bind("Menu", menu);
foreach(var item in menu) Console.WriteLine($"KEY :{item.Key}, VALUE: {item.Value}");
--- OUTPUT KEY: General Feedback, VALUE: /Questionnaire?form=1 KEY: Home, VALUE: # KEY: Raise Complaint, VALUE: /Questionnaire?form=3 KEY: Request Callback, VALUE: /Questionnaire?form=2
Note the order of the values has changed, and this is a unexpected behavior which can cause issues; please allow options to prevent reordering of values during the binding