How can I deserialize a string in case-sensitive way? It looks like serialization is case-sensitive, what’s the point in deserialization being not case-sensitive??

UPDATE: trying to localize where and what is going on under the hood, I’ve set up DEBUGGER to download symbols and stepped into the FCL .NET code. I’ve stuck near these code (DbConnectionOptions.cs lines 873-921):
private static NameValuePair ParseInternal(Hashtable parsetable, string connectionString, bool buildChain, Hashtable synonyms, bool firstKey) {
Debug.Assert(null != connectionString, "null connectionstring");
StringBuilder buffer = new StringBuilder();
NameValuePair localKeychain = null, keychain = null;
int nextStartPosition = 0;
int endPosition = connectionString.Length;
while (nextStartPosition < endPosition) {
int startPosition = nextStartPosition;
string keyname, keyvalue;
nextStartPosition = GetKeyValuePair(connectionString, startPosition, buffer, firstKey, out keyname, out keyvalue);
if (ADP.IsEmpty(keyname)) {
// if (nextStartPosition != endPosition) { throw; }
break;
}
string realkeyname = ((null != synonyms) ? (string)synonyms[keyname] : keyname);
if (!IsKeyNameValid(realkeyname)) {
throw ADP.KeywordNotSupported(keyname);
}
The modification occurs somewhere inside the while loop, which looks for another key/value pair in every iteration. Unfortunately I can’t ‘add watch’ to keyname and realkeyname variables. I suppose synonyms Hashtable is also important here.
- how can I see these variable values?
- what should I do next to finally find the exact place of modification?
Because (as per the documentation) for connection strings:
The values, however, are case-sensitive (obviously, for passwords etc)