diff --git a/src/Runner.Worker/IssueMatcher.cs b/src/Runner.Worker/IssueMatcher.cs index f55a49de6..752a5d86a 100644 --- a/src/Runner.Worker/IssueMatcher.cs +++ b/src/Runner.Worker/IssueMatcher.cs @@ -24,7 +24,7 @@ namespace GitHub.Runner.Worker // Close-over the incoming IEnumerable to force immediate evaluation. var empty = Enumerable.Empty>(); - this.Data = new Dictionary(data ?? empty); + this.Data = new Dictionary(data ?? empty, StringComparer.OrdinalIgnoreCase); } public readonly string Category; diff --git a/src/Sdk/DTWebApi/WebApi/Issue.cs b/src/Sdk/DTWebApi/WebApi/Issue.cs index d5ce09492..3566a3d54 100644 --- a/src/Sdk/DTWebApi/WebApi/Issue.cs +++ b/src/Sdk/DTWebApi/WebApi/Issue.cs @@ -25,7 +25,6 @@ namespace GitHub.DistributedTask.WebApi private Issue(Issue original) { - // DataContractSerializer bypasses all constructor logic and inline initialization! this.EnsureInitialized(); if (original != null) { @@ -107,6 +106,11 @@ namespace GitHub.DistributedTask.WebApi private IDictionary m_data; + /// + /// DataContractSerializer bypasses all constructor logic and inline initialization! + /// This method takes the place of a workhorse constructor for baseline initialization. + /// The expectation is for this logic to be accessible to constructors and also to the OnDeserialized helper. + /// private void EnsureInitialized() { m_data = m_data ?? new Dictionary(StringComparer.OrdinalIgnoreCase);