Transformación de argumento de paso de flujo de especificación en contenido de celda de tabla con CreateInstance

¿Alguien ha resuelto el enigma de cómo aplicar las transformaciones de argumento de paso SpecFlow a las celdas de una tabla, junto con SpecFlow.Assist CreateInstance / CreateSet? (código combinado aquí para ahorrar espacio)

Given a table like the following:
 | Price | Zip   | Effective Date |
 | 10.00 | 90210 | in 2 days      |
When the 'given' step executes
And the table data populates a poco
Then the effective date should be transformed into a DateTime with value of 2 days from today

[Given(@"a table like the following:")]
public void GivenATableLikeTheFollowing(Table table)
{
    var temp = table.CreateInstance<Temp>();
}

internal class Temp
{
    decimal Price { get; set; }
    int Zip { get; set; }
    DateTime EffectiveDate { get; set; }
}

[Binding]
public class Transforms
{
    [StepArgumentTransformation(@"in (\d+) days?")]
    public DateTime InXDaysTransform(int days)
   {
      return DateTime.Today.AddDays(days);
   }
}

StepArgumentTransformation los enlaces aparentemente no se aplican al contenido de la celda de la tabla (ya que el argumento del paso es tipo Tabla), pero de alguna manera el SpecFlow.Assist CreateInstance / CreateSet aún transformará los datos de la celda para los tipos básicos.

Por ejemplo, si el contenido de la Fecha de vigencia es '11 / 13/2016 'en lugar de' en 2 días ', la propiedad EffectiveDate de poco subyacente se transforma en un DateTime muy bien (o un int, decimal, etc.).

Veo algunas otras soluciones, como aplicar una conversión dentro de la definición del paso en sí, comoaquí o creando un StepArgumentTransformationpara toda la mesa, pero ... obvio contras. Actualizar:esta pregunta es similar, pero las soluciones también evitan mezclar StepArgumentTransformation con CreateInstance / CreateSet.

También hay una sección en elAyudantes de asistencia SpecFlow documentos sobre la extensión mediante el registro de recuperadores / comparadores de valores, pero en mi ejemplo, ya existe un conjunto de fecha y hora. Entonces, ¿quizás un tipo de fecha y hora personalizado? Parece que tal vez podría haber una comprobación de StepArgumentTransformations en los tipos conocidos, o algo así.

En elDateTime retriever, algo como..

    public virtual DateTime GetValue(string value)
    {
        var returnValue = DateTime.MinValue;
        // check for StepArgumentTransformations here first?
        DateTime.TryParse(value, out returnValue);
        return returnValue;
    }

¿Alguna idea sobre lo que me falta para que StepArgumentTransformation se aplique al contenido de la celda de la tabla cuando uso table.CreateInstance? ¿O es una de las soluciones mencionadas la mejor / única forma?

Respuestas a la pregunta(2)

Su respuesta a la pregunta