В системі передбачено можливість динамічної (під час виконання) перевірки відповідності типів. Перевіряеться відповідність типів і властивостей, отриманих з моделі та описаних в файлі визначення *.d.ts. Крім того, при рендерингу xaml-видів перевіряється відповідність прив'язок зазначеним типам.
Таким чином, якщо перевірку типів ввімкнено, то система гарантує, що отримана з бази даних модель відповідає опису, і що у виді використовуються тільки існуючі прив`язки. За відповідність даних і коду шаблонз відповідає компілятор TypeScript.
Цей механізм буде працювати тільки в тому випадку, коли шаблони пишуться мовою TypeScript.
Нехай, наприклад, ми використовуємо перевірку типів при редагуванні властивостей контрагента. Ця частина програми розташована в папці
/catalog/agent.
Файли в папке:
| Файл | Опис |
|---|---|
model.json |
файл опису моделі |
model.d.ts |
файл визначення типів |
edit.template.ts |
файл шаблону (TypeScript) |
edit.dialog.xaml |
файл виду |
Збережена процедура a2v10.[Agent.Load].
Процедура повертає один запис типу TAgent з полями
Id, Name, Code.
model.json перевіряється наявність елементу checkTypes. Якщо його нема, нічого не виконується.model.d.ts і типів, отриманих з моделі даних. Повинні
співпадати імена типів і їх властивості. Імена властивостей, які починаються з символу "$" вважаються обчислюваними і не перевіряються в моделі даних.
Вони знадобляться на наступному кроці.
Якщо знайдені неспівпадіння - генерирується виключення.
Зверніть увагу! Динамічна перевірка типів буде працювати тільки в налагоджувальній конфигурації.
Властивість configuration в розділі appSettings файлу Web.config повинна бути встановлена в
debug.