Я пытаюсь загрузиться, файл CSV (удаляет известь,''; и кавычки '"').
Я успешно создал все (инструмент мастера является потрясающим), но существует одна вещь, для которой я не могу найти решение.
В основном у меня есть целое число (Система. Int32) столбец. В теории большинство записей будет иметь положительное целочисленное значение в том столбце. Иногда, однако, я мог бы встретиться со значением "N/A" в том столбце. То, чего я хочу достигнуть, сделали, чтобы FileHelpers присвоился, значение по умолчанию (-1 работает просто великолепно), когда он встречается с "N/A" в том столбце.
Кто-либо знает, возможно ли это?
PS: Я, возможно, должен был бы сделать то же для Системы. Поле DateTime (это могло бы также иногда иметь "N/A").
] Лучшим способом сделать то, что вы хотите, будет использование атрибута []FieldConverter[
] на этих полях и создание пользовательских классов конвертеров, которые назначают значение по умолчанию, которое вы хотите, чтобы поле было. [
] Необходимо создать класс, который наследует []ConverterBase[
], а затем обеспечить реализацию двух виртуальных методов, []StringToField()[
] и []FieldToString()[
].[
]В методе []FieldToString()[
] проверяется, равна ли строка "N/A". Если да, то верните нужное вам значение по умолчанию.[
] Вам понадобятся два разных класса, один из которых может обрабатывать []Int32[
], а другой - []DateTime[
].[
] В документации FileHelpers есть пример того, как это сделать. []Link[][
]] Как сказал Брэндон, тебе нужен этот преобразователь [
] [// In your class
[FieldConverter(typeof(NoValueConverter))]
public int Number;
// Te Converter
public class NoValueConverter : ConverterBase
{
public override object StringToField(string sourceString)
{
if (sourceString.Trim().ToUpper() == "N/A")
return -1; // or int.MinValue;
else
return Integer.Parse(sourceString);
}
public override string FieldToString(object fieldValue)
{
return fieldValue.ToString();
}
}
]
[] Мы рады, что тебе понравился волшебник :) (мы работаем с классом автоопределения, чтобы облегчить создание класса mapping)[
].