diff --git a/X10D/src/DictionaryExtensions.cs b/X10D/src/DictionaryExtensions.cs
index 2f7ce38..359a81b 100644
--- a/X10D/src/DictionaryExtensions.cs
+++ b/X10D/src/DictionaryExtensions.cs
@@ -19,15 +19,25 @@ namespace X10D
/// Returns a representing the dictionary as a key=value; set.
public static string ToConnectionString(this IReadOnlyDictionary dictionary)
{
- static string SanitizeValue(T value)
+ static string SanitizeValue(string? value)
{
- return value is string str &&
- Regex.IsMatch(str, "\\s")
- ? $"\"{str}\""
- : value.ToString();
+ if (value is null)
+ {
+ return string.Empty;
+ }
+
+ for (var index = 0; index < value.Length; index++)
+ {
+ if (char.IsWhiteSpace(value[index]))
+ {
+ return $"\"{value}\"";
+ }
+ }
+
+ return value;
}
- var strings = dictionary.Select(o => $"{o.Key}={SanitizeValue(o.Value)}");
+ var strings = dictionary.Select(o => $"{o.Key}={SanitizeValue(o.Value?.ToString())}");
return string.Join(";", strings);
}