Asp.net core mvc 使用中间件将数据注入ViewModel

Asp.net core mvc 使用中间件将数据注入ViewModel,asp.net-core-mvc,asp.net-core-middleware,Asp.net Core Mvc,Asp.net Core Middleware,我有一个BaseViewModel,其中包含应用程序范围的数据。假装: public abstract class BaseViewModel { public string SiteWideNotification {get;set;} } 实际上,这是一个复杂的类,所以不仅仅是一个字符串 我想编写一个中间件,如果ViewModel扩展BaseViewModel,它可以为每个请求添加此数据。这可能吗 如果这是不可能的,我如何在我所有的页面上共享一个复杂的类?我个人并不喜欢这种设计。我建

我有一个
BaseViewModel
,其中包含应用程序范围的数据。假装:

public abstract class BaseViewModel
{
   public string SiteWideNotification {get;set;}
}
实际上,这是一个复杂的类,所以不仅仅是一个字符串

我想编写一个中间件,如果
ViewModel
扩展
BaseViewModel
,它可以为每个请求添加此数据。这可能吗


如果这是不可能的,我如何在我所有的页面上共享一个复杂的类?

我个人并不喜欢这种设计。我建议您创建一个提供所需数据的服务,或者如果它必须是POCO,则使用内置选项模式(即
IOptions
)将其注册为自己的对象,并在需要时将其注入。我想我的中间件将注入一个实际获取数据的服务,并将其缓存。我将研究选项模式。