예제 #1
0
 private void AddExtensionProvider(IElementExtendedPropertyProvider provider)
 {
     if (provider.CanExtend(subject))
     {
         var extendedProperties = provider.GetExtendedProperties(subject).ToArray();
         propertiesByExtensionProviders.Add(provider, extendedProperties);
         foreach (var extendedProperty in extendedProperties)
         {
             extendedProperty.Initialize(new InitializeContext());
             properties.Add(extendedProperty);
         }
     }
 }
예제 #2
0
 private void RemoveExtensionProvider(IElementExtendedPropertyProvider provider)
 {
     Property[] extendedProperties = null;
     if (propertiesByExtensionProviders.TryGetValue(provider, out extendedProperties))
     {
         propertiesByExtensionProviders.Remove(provider);
         foreach (var property in extendedProperties)
         {
             properties.Remove(property);
             property.Dispose();
         }
     }
 }