Post date: Dec 11, 2018 6:47:0 PM
QBO has been updated to support cases insensitive URLs and parameters. While not a breaking change, the change is deep enough that it includes a feature switch to enable/disable the functionality: qbo.Application.Properties.Settings.CaseSensitiveMethodSignature, which defaults to false.
To leverage the feature switch, instead of calling:
new Dictionary<string, object>()
Â
code should instead call:
new Parameters()
The Parameters class constructor sets the StringComparer based on the CaseSensitiveMethodSignature. Beyond that, the functionality is equivalent to IDictionary<string, object>.
The changes to enable this include:
Created application setting CaseSensitiveMethodSignatures, defaults to true
Introduced a Parameters: Dictionary<string, object> that sets case sensitivity based on CaseSensitiveMethodSignatures
Introduced IConfigurationName for configuration elements that implement Name properties
DbConfigurationElementCollection: this[string name] will resolve names in a case insensitive format for IConfigurationName items
AbstractObject: new Dictionary<string, object> => new Parameters()
Decorated several configuration classes with IConfigurationName
Updated Functions to handle type resolution of Parameters correctly
Created IgnoreCaseFacts test
Added code to abide by Accept headers for Output
Updated other tests as needed to correct bugs in the test code.