コード例 #1
0
        void UpdateServer()
        {
            WebIdentities identities = new WebIdentities(m_Account.Client.Document);

            lock (m_MyIdentities) {
                foreach (var kv in m_MyIdentities)
                {
                    identities.SetIdentity(kv.Key, kv.Value);
                }
            }

            var itemElement = new Element("item", m_Account.Client.Document);

            itemElement.AppendChild(identities);

            m_Account.GetFeature <PersonalEventing>().Publish(Namespace.WebIdentities, itemElement);
        }
コード例 #2
0
        void ReceivedWebIdentities(JID from, string node, PubSubItem item)
        {
            WebIdentities identities = (WebIdentities)item["web-identities"];

            if (from == m_Account.Jid.BareJID)
            {
                lock (m_MyIdentities) {
                    m_MyIdentities.Clear();
                    foreach (XmlElement child in identities.ChildNodes)
                    {
                        m_MyIdentities.Add(child.Name, child.InnerText);
                    }
                    if (MyIdentitiesReceived != null)
                    {
                        MyIdentitiesReceived(this, EventArgs.Empty);
                    }
                }
            }
            else
            {
                m_IdentityCache[from] = identities;
            }
        }