コード例 #1
0
        public void Open()
        {
            if (null == this._agent)
            {
                throw new InvalidOperationException("Agent not set");
            }

            // this._data = (HttpContext.Current.Cache[User.CurrentUser.Name] as Dictionary<string, object>);

            XDocument doc = null;

            if (_agent.HasKey(STORAGE_KEY))
            {
                doc = XDocument.Parse(_agent.Read(STORAGE_KEY));
            }

            if (null == this._data)
            {
                this._data = new Dictionary <string, object>();
                if (null != doc)
                {
                    foreach (string normalizedkey in this._agent.List())
                    {
                        XElement keyelement = doc.Element("keys")
                                              .Elements()
                                              .SingleOrDefault(x => x.Attribute("normalized").Value == normalizedkey);
                        if (null != keyelement)
                        {
                            string key           = keyelement.Attribute("full").Value;
                            string persisteddata = _agent.Read(normalizedkey);
                            if (!String.IsNullOrEmpty(persisteddata))
                            {
                                this._data.Add(key, SerializationServices.BinaryDeserialize(persisteddata));
                            }
                        }
                    }
                }
            }
        }