/// <summary>
        /// Generates an object from its XML representation.
        /// </summary>
        /// <param name="reader">The <see cref="XmlReader"/> stream from which the object is deserialized.</param>
        public void ReadXml(XmlReader reader)
        {
            string v;

            Uri       = !String.IsNullOrWhiteSpace(v = reader[nameof(Uri)]) ? new Uri(_assembly_uri, v) : null;
            PublicKey = !String.IsNullOrWhiteSpace(v = reader[nameof(PublicKey)]) ? Convert.FromBase64String(v) : null;

            if (reader.IsEmptyElement)
            {
                return;
            }

            while (reader.Read() &&
                   !(reader.NodeType == XmlNodeType.EndElement && reader.LocalName == GetType().Name))
            {
                if (reader.NodeType == XmlNodeType.Element && reader.Name == nameof(MinisignPublicKeyDictionary))
                {
                    if (reader["Key"] == nameof(MinisignPublicKeys))
                    {
                        MinisignPublicKeys = new MinisignPublicKeyDictionary();
                        MinisignPublicKeys.ReadXml(reader);
                    }
                }
            }
        }
Exemple #2
0
        public bool ReadRegistry(RegistryKey key, string name)
        {
            if (key.GetValue(name) is string v)
            {
                Uri = !string.IsNullOrEmpty(v) ? new Uri(AssemblyUri, v) : null;

                var pk = new MinisignPublicKeyDictionary();
                if (pk.ReadRegistry(key, name + "PublicKeys"))
                {
                    PublicKeys = pk;
                }

                return(true);
            }
            return(false);
        }
Exemple #3
0
 /// <summary>
 /// Deserialize object.
 /// </summary>
 /// <param name="info">The <see cref="SerializationInfo"/> populated with data.</param>
 /// <param name="context">The source of this deserialization.</param>
 protected ResourceRef(SerializationInfo info, StreamingContext context)
 {
     Uri        = (Uri)info.GetValue(nameof(PublicKeys), typeof(Uri));
     PublicKeys = (MinisignPublicKeyDictionary)info.GetValue(nameof(PublicKeys), typeof(MinisignPublicKeyDictionary));
 }