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;
}