У меня есть решение ASP.NET MVC, и у меня есть большое количество классов HtmlHelper в проекте ASP.NET MVC, которые берут данные и генерируют различные фрагменты html для отображения на разных страницах.
Теперь мне нужно запустить кучу запланированных заданий, и многие из этих заданий создают электронные письма. Я переместил все эти задания в отдельный проект в решении (так называемый AdminJob.csproj), но теперь я обнаружил, что мне нужно создать несколько писем с очень похожим HTML, как у меня на моих страницах просмотра. Я стараюсь, чтобы задания администратора не зависели от проекта ASP.NET MVC (поскольку я хотел бы запустить проект adminjob как командную строку, если это необходимо), и я также хочу избежать создания моего проекта ASP.NET MVC имея зависимость от проекта AdminJob (поскольку это просто кажется странным).
Любые предложения о том, как я могу избежать дублирования одного и того же кода рендеринга HTML как в моем проекте ASP.NET MVC, так и в проекте AdminJob?
Единственное, о чем я могу думать, это создать еще один проект в решении под названием "ViewHelpers" или что-то в этом роде и перенести все мои HTMLHelpers в этот проект, чтобы на него можно было ссылаться как мой проект MVC, так и проект AdminJob. Кажется немного переборщиком, чтобы иметь отдельный проект только для этого кода, но я не могу думать о другом решении, которое не создает дублирование.
Любые другие предложения для лучшего способа сделать это и избежать дублирования?