Я хотел бы определить, какие файлы C # (pocos) изменились при втором запуске приложения по сравнению с предыдущим.Под изменением я подразумеваю любое изменение файла, например, изменение логики внутри метода или добавление / удаление свойств / полей.Вы можете предположить, что имя файла остается прежним.Проверка журналов / изменений git выходит за рамки этой проблемы.
Потенциальные решения, о которых я могу подумать, - вести учет хеша в базе данных.Я могу вычислить хеш файла или вычислить хеш экземпляра объекта poco.Вычисление хеша файла даст мне уникальный хеш, но во время выполнения все файлы .cs скомпилированы в dll, поэтому это может быть невозможно сделать в рамках одного проекта, мне нужно будет запустить отдельный проект до того, какосновной проект для заполнения хешей (не идеал).Или я могу хэшировать экземпляр объекта, но я не думаю, что он учитывает изменения кода в методе / функциях poco, поскольку он только хэширует значения свойства / поля (поправьте меня здесь, если я ошибаюсь).
Мне интересно, есть ли прямой способ сделать это?Потенциально решение, где я могу получить уникальный хэш файла во время выполнения, сохранить его в базе данных для второго запуска.При втором запуске сравните только что созданные мной хэши со значениями в базе данных и работайте с любыми внесенными изменениями.
Итак, на данный момент я не уверен, какие возможные методы существуютЭта проблема.Любые указатели или советы о том, как решить эту проблему, были бы полезны.
Исходный контекст проблемы:
В системе CQRS у нас есть прогнозы и любые изменения в представлениях /проекции требуют, чтобы события воспроизводились в проекции, чтобы перестроить представление.Это может быть дорого, если база данных событий велика.Поэтому я создал несколько инструментов, позволяющих перестраивать все все виды / проекции для запуска приложений в разработке и на производстве, а также возможность по желанию воссоздать некоторые виды для скорости, которая изменилась во время спринта.Чтобы по желанию воссоздать представления, мы должны выяснить, какие представления изменились во время спринта, и передать его как переменную среды, поэтому единственные правильные представления должны быть перестроены для ускорения времени запуска приложения.Это ручной процесс, и человеческая ошибка может возникнуть легко, когда мы можем пропустить представление, которое могло измениться.Я хотел бы автоматически определять представления, которые изменились во время спринта, при запуске приложения, проверяя файлы, которые были изменены, и использовать этот список изменений для перестройки представлений.
Заранее спасибо за помощь:)