//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.IO; using System.Text; using System.Web.Util; using System.Security.Permissions; // ProfilePropertySettingsCollection public sealed class ProfilePropertySettings : ConfigurationElement { private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propName = new ConfigurationProperty("name", typeof(string), null, null, ProfilePropertyNameValidator.SingletonInstance, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey); private static readonly ConfigurationProperty _propReadOnly = new ConfigurationProperty("readOnly", typeof(bool), false, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propSerializeAs = new ConfigurationProperty("serializeAs", typeof(SerializationMode), SerializationMode.ProviderSpecific, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propProviderName = new ConfigurationProperty("provider", typeof(string), "", ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propDefaultValue = new ConfigurationProperty("defaultValue", typeof(string), "", ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propType = new ConfigurationProperty("type", typeof(string), "string", ConfigurationPropertyOptions.IsTypeStringTransformationRequired); private static readonly ConfigurationProperty _propAllowAnonymous = new ConfigurationProperty("allowAnonymous", typeof(bool), false, ConfigurationPropertyOptions.None); private static readonly ConfigurationProperty _propCustomProviderData = new ConfigurationProperty("customProviderData", typeof(string), "", ConfigurationPropertyOptions.None); static ProfilePropertySettings() { // Property initialization _properties = new ConfigurationPropertyCollection(); _properties.Add(_propName); _properties.Add(_propReadOnly); _properties.Add(_propSerializeAs); _properties.Add(_propProviderName); _properties.Add(_propDefaultValue); _properties.Add(_propType); _properties.Add(_propAllowAnonymous); _properties.Add(_propCustomProviderData); } private Type _type; private SettingsProvider _providerInternal; internal ProfilePropertySettings() { } public ProfilePropertySettings(string name) { Name = name; } public ProfilePropertySettings(string name, bool readOnly, SerializationMode serializeAs, string providerName, string defaultValue, string profileType, bool allowAnonymous, string customProviderData) { Name = name; ReadOnly = readOnly; SerializeAs = serializeAs; Provider = providerName; DefaultValue = defaultValue; Type = profileType; AllowAnonymous = allowAnonymous; CustomProviderData = customProviderData; } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("name", IsRequired = true, IsKey = true)] public string Name { get { return (string)base[_propName]; } set { base[_propName] = value; } } [ConfigurationProperty("readOnly", DefaultValue = false)] public bool ReadOnly { get { return (bool)base[_propReadOnly]; } set { base[_propReadOnly] = value; } } [ConfigurationProperty("serializeAs", DefaultValue = SerializationMode.ProviderSpecific)] public SerializationMode SerializeAs { get { return (SerializationMode)base[_propSerializeAs]; } set { base[_propSerializeAs] = value; } } [ConfigurationProperty("provider", DefaultValue = "")] public string Provider { get { return (string)base[_propProviderName]; } set { base[_propProviderName] = value; } } internal SettingsProvider ProviderInternal { get { return _providerInternal; } set { _providerInternal = value; } } [ConfigurationProperty("defaultValue", DefaultValue = "")] public string DefaultValue { get { return (string)base[_propDefaultValue]; } set { base[_propDefaultValue] = value; } } [ConfigurationProperty("type", DefaultValue = "string")] public string Type { get { return (string)base[_propType]; } set { base[_propType] = value; } } internal Type TypeInternal { get { return _type; } set { _type = value; } } [ConfigurationProperty("allowAnonymous", DefaultValue = false)] public bool AllowAnonymous { get { return (bool)base[_propAllowAnonymous]; } set { base[_propAllowAnonymous] = value; } } [ConfigurationProperty("customProviderData", DefaultValue = "")] public string CustomProviderData { get { return (string)base[_propCustomProviderData]; } set { base[_propCustomProviderData] = value; } } } // class ProfilePropertySettings }