using System; using System.Collections.Generic; using System.Text; using System.Collections.ObjectModel; namespace DotNetOpenId.Extensions.AttributeExchange { /// /// An individual attribute's value(s) as supplied by an OpenID Provider /// in response to a prior request by an OpenID Relying Party as part of /// a fetch request, or by a relying party as part of a store request. /// [Serializable] public class AttributeValues { /// /// This is internal because web sites should be using the /// method to instantiate. /// internal AttributeValues() { Values = new List(1); } internal AttributeValues(string typeUri) { if (string.IsNullOrEmpty(typeUri)) throw new ArgumentNullException("typeUri"); TypeUri = typeUri; Values = new List(1); } /// /// Instantiates an object. /// public AttributeValues(string typeUri, params string[] values) { if (string.IsNullOrEmpty(typeUri)) throw new ArgumentNullException("typeUri"); TypeUri = typeUri; Values = values ?? new string[0]; } /// /// The URI uniquely identifying the attribute whose value is being supplied. /// public string TypeUri { get; internal set; } /// /// Gets the values supplied by the Provider. /// public IList Values { get; private set; } } }