1

我正在尝试使用 IOC 模式,但找不到使用该模式实现状态管理的完美方法。如果有人可以帮助我,那就太好了。谢谢你。

4

1 回答 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 回答