我正在尝试使用 IOC 模式,但找不到使用该模式实现状态管理的完美方法。如果有人可以帮助我,那就太好了。谢谢你。
问问题
1113 次
1 回答
0
我要做的是首先创建一个接口,其中包含您需要存储在 Session 中的所有属性(即:上下文):
using ProjectName.Core.Domain;
namespace ProjectName.Core.Interfaces
{
public interface IProjectNameSessionContext
{
string StringProperty1 { get; set; }
bool BoolProperty1 { get; set; }
ProjectName.Core.Domain.Entity1 DomainEntity1 { get; set; }
}
}
然后创建一个实现该接口的类,将其标记为可序列化:
using ProjectName.Core.Interfaces;
namespace ProjectName.Front.SessionData
{
[Serializable]
public class ProjectNameSessionContext : IProjectNameSessionContext
{
public string StringProperty1 { get; set; }
public bool BoolProperty1 { get; set; }
public ProjectName.Core.Domain.Entity1 DomainEntity1 { get; set; }
}
}
最后告诉您的 IOC 在运行时将接口与类绑定,并在 HttpSession 上下文中实例化一个对象。
使用 StrucureMap 看起来像这样:
For<Core.Interfaces.IProjectNameSessionContext>().LifecycleIs(new HttpSessionLifecycle()).Use<ProjectNameSessionContext>();
希望有帮助!
于 2013-05-15T16:06:30.170 回答