如何使用 Cofoundry 在程序集中嵌入视图文件

How to embed view files in assemblies using Cofoundry

是否有任何 Cofoundry 特定的解决方案来将视图嵌入程序集并由主要网站程序集使用这些视图?

例如,我有 /Views/CofoundryPages/Components/BookingRequest/Default.cshtml,它是属于单独程序集“Bookings.dll”的 ViewComponent 的视图。但我必须将 cshtml 视图文件留在主网站程序集“Website.dll”中。

是否有一种标准方法可以将我的 Default.cshml 文件嵌入“Bookings.dll”,并且仍然让 Cofoundry 框架在其虚拟路径提供程序(或者它是什么)中获取它?

是的,您可以使用 Cofoundry 本身用于 bootstrap 管理面板和插件的模块化系统。这里有几件事需要考虑:

注册您的程序集

要向 Cofoundry 注册您的程序集,只需添加实现 IAssemblyResourceRegistration 的 class。这是一个简单的标记 class,它会被 DI 系统拾取并在 Cofoundry AssemblyResourceProvider 中注册,以便可以找到您的观点。例如

public class ExampleAssemblyResourceRegistration : IAssemblyResourceRegistration
{
}

确保您的程序集被 Cofoundry 扫描

如果您的程序集遵循默认规则,Cofoundry DI 系统将自动扫描它,否则您可能需要实现一个 IAssemblyDiscoveryRule 并在启动时注册它。 Cofoundry DI docs

中的更多信息