Open
Description
I've found a potential source of bugs:
the class Foundatio.Utility.DataDictionary
exposes a static readonly field Empty
to represent empty dictionaries, but it's instance is not readonly, so values can be added to Empty
causing potential bugs.
The current declaration is:
public static readonly DataDictionary Empty = new();
A new safe declaration shoud be
public static DataDictionary Empty => new();
This at least returns always empty dictionaries, but creates a new instance at every call.
Another approach should be to re-implement DataDictionary with explicit implementation of IDictionary and IReadOnlyDictionary, or something else.
Metadata
Assignees
Labels
No labels
Activity