Преобразование аргумента шага Specflow для содержимого ячейки таблицы с помощью CreateInstance

Кто-нибудь решил загадку о том, как применять Преобразования пошагового аргумента SpecFlow к ячейкам таблицы вместе с SpecFlow.Assist CreateInstance / CreateSet? (код объединен здесь для экономии места)

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 привязки, очевидно, не применяются к содержимому ячейки таблицы (поскольку аргумент шага имеет тип Table), но каким-то образом SpecFlow.Assist CreateInstance / CreateSet по-прежнему преобразует данные ячейки для базовых типов.

Например, если содержимое даты вступления в силу равно «11/13/2016», а не «через 2 дня», свойство EffectiveDate базового poco преобразуется в DateTime просто отлично (или int, десятичное число и т. Д.).

Я вижу некоторые другие решения, такие как применение преобразования в самом определении шага, какВот или создание StepArgumentTransformationдля всего стола, но ... очевидные минусы. Обновить:этот вопрос аналогично, но решения также избегают смешения StepArgumentTransformation с CreateInstance / CreateSet.

Есть также раздел вПомощники SpecFlow Assist Документы о расширении путем регистрации получения / сравнения значений, но в моем примере набор DateTime уже существует. Итак, возможно, пользовательский тип DateTime? Похоже, что может быть проверка StepArgumentTransformations для известных типов или что-то в этом роде.

вDateTime ретривер, что-то вроде..

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

Любые идеи о том, что мне не хватает, чтобы получить StepArgumentTransformation для применения к содержимому ячейки таблицы при использовании table.CreateInstance? Или одно из упомянутых решений является лучшим / единственным способом?

Ответы на вопрос(2)

Ваш ответ на вопрос