У меня есть исходный объект, который является производным от System.Data.DataRow которого строка свойства отбросит исключения на Get если основное значение DBNullAutoMapper как игнорировать исключение при получении свойства, которое генерирует исключение?
private static void CreateMappings(IMapperConfiguration config)
{
config.CreateMap<SrcRow, DestDto>()
.ForMember(d => d.Error_Text, opt => opt.ResolveUsing(row =>
{
try
{
// the getter of this string property throws exception if internal value is DBNull
return row.error_text;
}
catch
{
return null;
}
}))
;
}
Все свойства источника и назначения строки. Исходный объект является оберткой вокруг DataRow, и каждое свойство получает определенное значение строки. Если значением строки является значение DBNull, свойство getter генерирует исключение. Как я могу достичь этого кода, но для всех членов типа назначения вместо копирования/вставки этого кода для каждого члена?
Не используйте исключения в качестве потока управления. Вы можете легко преобразовать его в условный возврат. –
Даже если я попытаюсь: var x = row.error_text; он все равно бросит. Я должен поймать. Это не поле, которое я могу проверить с помощью: if (row.error_text == null) – Vince
Свойство выглядит примерно так: public string error_text { get {// если базовое значение DBNull, throw new Exception()} set {} } – Vince