On 2016-08-22, <jonas.ba...@rohde-schwarz.com> wrote: > A recent commit [1] changed, among other things, some string equality > comparisons from `SomeComparer.Compare(a, "B", IgnoreCase) == 0` to > `a.ToUpperInvariant() == "B"`, see also [2]. > > Unfortunately, this doesn't work if `a` is allowed to be null. Currently a > lot of log4net.Tests are broken because of such a null reference exception > in `NewLinePatternConverter.ActivateOptions` (apparently "%newline" is > quite common in pattern layouts ;-).
Oh, I'm sorry. I must admit I glanced over the PR and applied it without running the tests. My fault. > For new code I tend to opt for `String.Equals(Option, "DOS", > StringComparison.OrdinalIgnoreCase)` for a fast, case-insensitive > comparison with fixed ASCII-only patterns, but static > `String.Equals(String, String, StringComparison)` is not awailable on > .NET-1.x [3]. This is what the original code before PR #16 looked like, but it doesn't seem to be available for .NET Core, see the discussion around https://github.com/apache/log4net/pull/16/files#diff-51624ab11a9b3d95cc770de1a4e1bdbc > Should we create some helper in SystemInfo that provides null-aware, > ordinal, casing-agnostic string equality comparison, with some #if's > .NET-1.x? +1 Stefan