Хорошо, документация и мои глаза были в замешательстве. Данный код ...
engine.RecordSelector = new RecordTypeSelector(CustomSelector);
... полезен, только если CustomSelector является локальной функцией , что мне кажется плохим тоном. Я остановился на отдельном классе Selector и объявил «CustomSelector» как publi c stati c:
public static Type CustomSelector(MultiRecordEngine engine, string recordLine)
{
if (recordLine.Length == 0)
return null;
if (Char.IsLetter(recordLine[0]))
return typeof (Customer);
else if (recordLine.Length == 14)
return typeof (SampleType);
else
return typeof (Orders);
}
Как только я скажу MultiRecordEngine, где его найти,
engine.RecordSelector = new RecordTypeSelector(Selector.CustomSelector);
... ты золотой.
Надеюсь, это поможет спасти следующему человеку те 10 минут, которые я потратил, набирая вопрос и ответ. Наслаждайтесь! :)