<PackageReference Include="Castle.Core" Version="3.0.0.2001" />

CascadingDictionaryAdapter

using System.Collections; namespace Castle.Components.DictionaryAdapter { public class CascadingDictionaryAdapter : AbstractDictionaryAdapter { private readonly IDictionary primary; private readonly IDictionary secondary; public IDictionary Primary => primary; public IDictionary Secondary => secondary; public override bool IsReadOnly => primary.IsReadOnly; public override object this[object key] { get { return primary[key] ?? secondary[key]; } set { primary[key] = value; } } public CascadingDictionaryAdapter(IDictionary primary, IDictionary secondary) { this.primary = primary; this.secondary = secondary; } public override bool Contains(object key) { if (!primary.Contains(key)) return secondary.Contains(key); return true; } } }