Here's a snippet from DictionaryDataExchange:

public override object GetData(ParameterProperty mapping, object 
parameterObject)
{
 return ObjectProbe.GetMemberValue(parameterObject, mapping.PropertyName,
  DataExchangeFactory.AccessorFactory);
}

public override void SetData(ref object target, ResultProperty mapping, object 
dataBaseValue)
{
 ((IDictionary) target).Add(mapping.PropertyName, dataBaseValue);
}

public override void SetData(ref object target, ParameterProperty mapping, 
object dataBaseValue)
{
 ObjectProbe.SetMemberValue(target, mapping.PropertyName, dataBaseValue, 
  DataExchangeFactory.ObjectFactory,
  DataExchangeFactory.AccessorFactory);
}

Since we know we're working with an IDictionary object can we bypass 
ObjectProbe and get the value directly from the object similiar to how one of 
the SetData members already does?

public override object GetData(ParameterProperty mapping, object 
parameterObject)

{

 return ((IDictionary)parameterObject)[mapping.PropertyName];

}

public override void SetData(ref object target, ParameterProperty mapping, 
object dataBaseValue)
{
 ((IDictionary)target)[mapping.PropertyName] = dataBaseValue;
}

Reply via email to