|
15.11.2023, 10:23 | #1 |
Участник
|
Отлично!
А как вы определяете какую из функций вызвать в случае, если не знаете заранее тип? Что-то мне использование System.Type с получением наименования: X++: retType = _sysObj.GetType(); retTypeName = retType.get_Name(); if (retTypeName == '...') |
|
15.11.2023, 12:44 | #2 |
Участник
|
В рамках существующих интеграций знаем типы данных...
...придется фантазировать: Особой вариативности не вижу, потому что за капотам используется внутренний объект и доступа к нему из вне нет (System.Data.SqlClient._SqlMetaData). Остается использовать то, что есть - System.Type. Его можно получить, как минимум 2 способами: - из reader'a (функция GetFieldType); - из самого объекта, что и делаете. С точки зрения эстетики Guid куда приятнее - для объекта типа System.Type функция get_GUID. GUID'ы типов данных можно обернуть в макросы. Встречал реализацию, где сравнивается сам System.Type, но то с чем он сравнивается нужно держать в памяти. |
|
15.11.2023, 15:04 | #3 |
Участник
|
Гугл подсказал, что данный способ является оптимальным, C#:
X++: System.Type type = reader.GetFieldType(c); switch (Type.GetTypeCode(type)) { case TypeCode.DateTime: break; case TypeCode.String: break; default: break; } |
|
|
За это сообщение автора поблагодарили: Logger (5). |
|
|