/// <summary>
        /// Register the attribute.
        /// </summary>
        /// <param name="attrib">Attribute to register.</param>
        public virtual void Register(TAttrib attrib)
        {
            var metadata = new ExtensionMetaData
            {
                Id        = attrib.Name,
                Attribute = attrib,
                Instance  = null,
                DataType  = attrib.DeclaringDataType
            };

            Register(attrib.Name, metadata);
        }
 /// <summary>
 /// Register the id.
 /// </summary>
 /// <param name="id">Extension id.</param>
 /// <param name="metadata">Extension metadata.</param>
 public virtual void Register(string id, ExtensionMetaData metadata)
 {
     Lookup[id] = metadata;
 }