ExtensibleStorage . Задать тип поля

Автор Тема: ExtensibleStorage . Задать тип поля  (Прочитано 1711 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
есть fieldType, (это поле метода)
Код - C# [Выбрать]
  1. public void ReadValue (Type fieldType)
  2. {
  3.    var value = entity.Get<fieldType>(fieldName, displayUnitType); // как мне правильно передать fieldType  
  4. }
  5.  

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: ExtensibleStorage . Задать тип поля
« Ответ #1 : 11-12-2019, 14:55:39 »
Например для строкового поля extensible storage-а:

Код - C# [Выбрать]
  1. .Get<string>(...

Вообще рекомендую поискать VCExtensibleStorage от Вити Чекалина (поиском на github, например), вроде и здесь на форуме было (может, в статьях здесь на сайте), у Тэммика точно статейка в блоге была.

Если не считывать/записывать Extensible storage-и в тысячи элементов, то нормально работает, с его помощью просто описывается как сама схема, так и чтение/запись данных.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: ExtensibleStorage . Задать тип поля
« Ответ #2 : 11-12-2019, 15:01:53 »
fieldType у меня ElementId (вообще могут быть разные)

не знаю как записать , чтобы внутри метода он определился как  .Get<ElementId>

 есть идея (на случай, если это нельзя в одном методе как то сделать автоопределением типа данных), написать несколько методов с одинаковыми именами но на вход подавать разный тип данных...
в С# такая штука как переопределение метода автоматом определит подходящий. Хотя не, так не будет работать

Отмечено как Решение enot 11-12-2019, 15:25:30

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: ExtensibleStorage . Задать тип поля
« Ответ #3 : 11-12-2019, 15:08:10 »
Как-то примерно так, например

Код - C# [Выбрать]
  1. public void ReadValue<T> (string fieldName)
  2. {
  3.    var value = entity.Get<T>(fieldName); // как мне правильно передать fieldType  
  4. }

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: ExtensibleStorage . Задать тип поля
« Ответ #4 : 11-12-2019, 15:22:53 »
то есть я тип данных должен буду указывать при вызове метода?
ReadValue<ElementId> (fieldName) ?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: ExtensibleStorage . Задать тип поля
« Ответ #5 : 11-12-2019, 15:23:56 »
Да