private void InitializePublicKeyTokens() { this._knownPublicKeyTokens = new Dictionary <int, byte[]>(); var keysNode = this.XmlNode.DocumentElement.SelectSingleNode("./vre:PublicKeys", this.XmlNamespaceManager); if (keysNode != null) { var xnlKeys = keysNode.SelectNodes("./vre:PublicKey", this.XmlNamespaceManager); if (xnlKeys != null && xnlKeys.Count > 0) { foreach (XmlElement element in xnlKeys) { int id = XmlExtensions.ParseAttribute(element, "Id"); if (id != -1) { byte[] token = XmlExtensions.ParseAttribute <byte[]>(element, "Token", (str, def) => { try { return(StringHandling.FromFormatHexadecimal(str)); } catch (Exception e) { return(def); } }, new byte[0]); if (token != null && token.Length == 8) { this._knownPublicKeyTokens.Add(id, token); } } } } } }
private IControlledDictionary <TVersion, IVreLibraryVersion <TEnvironment, TVersion, TIdentityManager> > InitializeVersions() { XmlElement lastVHistory = null; return(new ControlledDictionary <TVersion, IVreLibraryVersion <TEnvironment, TVersion, TIdentityManager> >( (from v in this.Environment.Versions where v >= this.InitialVersion join vh in this.VersionHistory on v equals vh.Value into vhJoin from vh in vhJoin.DefaultIfEmpty() where vh.Key != null let versionDetails = vh.Key == null ? lastVHistory : (lastVHistory = vh.Key) select(IVreLibraryVersion <TEnvironment, TVersion, TIdentityManager>) new VreXmlLibraryVersion <TEnvironment, TVersion, TIdentityManager>(v, this, GetVersionFromHistoryEntry(versionDetails), XmlExtensions.ParseAttribute(versionDetails, "PublicKeyId"))).ToDictionary(k => k.Version, v => v))); }