如何使用 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
中的更多信息
是否有任何 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