using System; using System.Collections.Generic; namespace Caliburn.Metadata { public abstract class MetadataContainer { protected readonly Dictionary _metadata = new Dictionary(); public virtual void AddMetadata(MetadataProvider metadata) { _metadata[metadata.GetType()] = metadata; } public virtual T GetMetadata() { object metadata; _metadata.TryGetValue(typeof(T), out metadata); if(metadata != null) return (T) metadata; else return default(T); } } }