我有一个使用c#和ASP.NET MVC 5编写的应用程序。我还使用Unity.Mvc进行依赖项注入。
与许多其他类一起,该类MessageManager
在IoC
容器中注册。但是,MessageManager
该类依赖于的实例TempDataDictionary
来执行其工作。此类用于为视图写入临时数据。
为了解析的实例,MessageManager
我还需要注册的实例TempDataDictionary
。我将需要能够TempDataDictionary
从MessageManager
类中添加值,然后需要从视图访问临时数据。因此,我需要能够访问TempDataDictionary
视图中的相同实例,以便可以将消息写给用户。
另外,如果控制器将用户重定向到其他地方,我也不想丢失消息,但我仍然希望能够在下一个视图中显示该消息。
我尝试了以下方法来注册TempDataDictionary
和MessageManager
:
Container.RegisterType<TempDataDictionary>(new PerThreadLifetimeManager())
.RegisterType<IMessageManager, MessageManager>();
然后,在我看来,我有以下解决方案来解决 IMessageManager
var manager = DependencyResolver.Current.GetService<IMessageManager>();
但是,该消息由于某种原因而丢失。也就是说,当我解析时manager,TempDataDictionary不包含MessageManager从控制器添加的任何消息。
如何正确注册的实例,TempDataDictionary以便数据一直保留到被查看?
更新 这是我的IMessageManager界面
public interface IMessageManager
{
void AddSuccess(string message, int? dismissAfter = null);
void AddError(string message, int? dismissAfter = null);
void AddInfo(string message, int? dismissAfter = null);
void AddWarning(string message, int? dismissAfter = null);
Dictionary<string, IEnumerable<FlashMessage>> GetAlerts();
}
吃鸡游戏
幕布斯6054654
相关分类