/
aprogrammer
/
serilog
Обзор
Документация
Войти
/
aprogrammer
/
serilog
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
test/Serilog.Tests/Support/LogEventPropertyValueComparer.cs
49 строк
1 KB
Simon Cropp
global usings (#1736)
01 сен 2022, 00:19
Не верифицирован
01 сен 2022, 00:19
c5a5b44
Код
Авторство
О чём код?
namespace Serilog.Tests.Support; class LogEventPropertyValueComparer : IEqualityComparer<LogEventPropertyValue> { readonly IEqualityComparer<object> _objectEqualityComparer; public LogEventPropertyValueComparer(IEqualityComparer<object>? objectEqualityComparer = null) { _objectEqualityComparer = objectEqualityComparer ?? EqualityComparer<object>.Default; } public bool Equals(LogEventPropertyValue? x, LogEventPropertyValue? y) { if (x is ScalarValue scalarX && y is ScalarValue scalarY) { if (scalarX.Value is null && scalarY.Value is null) { return true; } if (scalarX.Value is null || scalarY.Value is null) { return false; } return _objectEqualityComparer.Equals(scalarX.Value, scalarY.Value); } if (x is SequenceValue sequenceX && y is SequenceValue sequenceY) { return sequenceX.Elements .SequenceEqual(sequenceY.Elements, this); } if (x is StructureValue || y is StructureValue) { throw new NotImplementedException(); } if (x is DictionaryValue || y is DictionaryValue) { throw new NotImplementedException(); } return false; } public int GetHashCode(LogEventPropertyValue obj) => 0; }