object IDictionaryPropertyGetter.GetPropertyValue( IDictionaryAdapterFactory factory, IDictionary dictionary, string key, object storedValue, PropertyDescriptor property) { if (storedValue == null) { PropertyDescriptor descriptor = new PropertyDescriptor(property.Property); descriptor.AddKeyBuilder(new DictionaryKeyPrefixAttribute(key)); return factory.GetAdapter( property.Property.PropertyType, dictionary, descriptor); } return storedValue; }
object IDictionaryPropertyGetter.GetPropertyValue(IDictionaryAdapter dictionaryAdapter, string key, object storedValue, PropertyDescriptor property, bool ifExists) { if (storedValue == null) { var component = dictionaryAdapter.This.ExtendedProperties[property.PropertyName]; if (component == null) { var descriptor = new PropertyDescriptor(property.Property, null); descriptor.AddKeyBuilder(new KeyPrefixAttribute(key)); component = dictionaryAdapter.This.Factory.GetAdapter( property.Property.PropertyType, dictionaryAdapter.This.Dictionary, descriptor); dictionaryAdapter.This.ExtendedProperties[property.PropertyName] = component; } return component; } return storedValue; }
object IDictionaryPropertyGetter.GetPropertyValue(IDictionaryAdapter dictionaryAdapter, string key, object storedValue, PropertyDescriptor property, bool ifExists) { if (storedValue == null) { var component = dictionaryAdapter.This.ExtendedProperties[property.PropertyName]; if (component == null) { var descriptor = new PropertyDescriptor(property.Property, null); descriptor.AddKeyBuilder(new KeyPrefixAttribute(key)); component = dictionaryAdapter.This.Factory.GetAdapter( property.Property.PropertyType, dictionaryAdapter.This.Dictionary, descriptor); dictionaryAdapter.This.ExtendedProperties[property.PropertyName] = component; } return(component); } return(storedValue); }