public ReadResult Read(object source, DataAccessContext context) { if (context == null) { throw new ArgumentNullException("context"); } bool flag = false; object value = null; ContactModel contactModel = (ContactModel)source; if (contactModel != null) { AddressList myFacetObject = (AddressList)contactModel.GetFacet(AddressList.DefaultFacetKey); value = GetPropValue(myFacetObject.PreferredAddress, this.Indexes?[0]?.ToString());// myFacetObject.PreferredAddress?.GetType()?.GetProperty(this.Indexes?[0]?.ToString())?.GetValue(myFacetObject.PreferredAddress, null)?.ToString(); if (value != null) { flag = true; } } // PropertyInfo indexerProperty = this.ReflectionUtil.GetIndexerProperty(source, this.Indexes); //if (indexerProperty != null && indexerProperty.CanRead) //{ // IndexerPropertyKeyStatus indexerPropertyKeyStatu = this.IsValueSet(source, context); // if (indexerPropertyKeyStatu == IndexerPropertyKeyStatus.IndexUsedNotNull || indexerPropertyKeyStatu == IndexerPropertyKeyStatus.IndexUsedNull) // { // value = indexerProperty.GetValue(source, this.Indexes.ToArray<object>()); // } // flag = true; //} return(new ReadResult(DateTime.UtcNow) { ReadValue = value, WasValueRead = flag }); }