Я разрабатываю внешнее приложение Angular, которое отправляет и получает данные с внутреннего сервера C # (.NET). Я работаю над совместным использованием моделей объектов данных между приложением Angular (машинопись) и бэкэндом (C #) - и я ищу чистый, автоматизированный способ синхронизации двух наборов моделей объектов данных.
В качестве примера, скажем, у меня есть интерфейс C # под названием «IData» с атрибутом «Имя». Я хотел бы интерфейс Typescript под названием «IData», который также имеет атрибут «Имя». Если я обновлю имя атрибута на что-то другое (скажем, «LongName»), я хочу, чтобы файл машинописи автоматически отражал это изменение. Я в порядке с односторонней связью данных (пользователь обновляет C #, машинопись обновляется автоматически).
В настоящее время я использую пишущую машинку (https://frhagn.github.io/Typewriter/) для автоматической генерации файлов машинописи из источника C #, и она прекрасно справляется со своей задачей. Проблема, которую я пытаюсь решить: что лучше способ поделиться / получить доступ к автоматически сгенерированным файлам машинописи из моего углового приложения?
Я думал о включении автоматически сгенерированных файлов машинописи в модуль Angular в проект библиотеки Angular, его сборке и последующем импорте в мое приложение Angular. Однако я не могу найти хороший способ заставить модуль библиотеки автоматически включать все файлы в библиотеку (я хотел бы избежать необходимости вручную обновлять файл модуля при создании нового объекта данных для совместного использования, поскольку они изменяются довольно часто) , и в настоящее время я использую интерфейсы, которые нельзя экспортировать в угловой модуль ( Интерфейс нельзя экспортировать в угловой модуль 2? ).
Я рассмотрел использование модулей Typescript (https://www.typescriptlang.org/docs/handbook/modules.html - отличается от модулей Angular и Javascript) и ссылок на Typescript (https://www.typescriptlang.org/docs/handbook/project-references.html), они кажутся немного более перспективными для совместного использования интерфейсов, но я все еще не уверен как использовать их в этом контексте.
Я использую Visual Studio 2017, поэтому в идеале объекты данных должны находиться в одном проекте Visual Studio, и тогда мое угловое приложение должно находиться в отдельном проекте Visual Studio, хотя я понимаю, что это невозможно.
Спасибо за любые рекомендации по правильному способу сделать это!