public bool TryGetRaw(string key, out object value) =>
 _metadata.TryGetRaw(key, out value) || PropertyMetadata <T> .For(Object).TryGetRaw(key, out value);
 public bool TryGetValue <TValue>(string key, out TValue value) =>
 _metadata.TryGetValue(key, out value) || PropertyMetadata <T> .For(Object).TryGetValue(key, out value);
        // IMetadata

        public bool ContainsKey(string key) =>
        _metadata.ContainsKey(key) || PropertyMetadata <T> .For(Object).ContainsKey(key);