SALES: 1-800-867-1380
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ConfigurationElement.LockAttributes Property

Gets the collection of locked attributes

Namespace:  System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

public ConfigurationLockCollection LockAttributes { get; }

Property Value

Type: System.Configuration.ConfigurationLockCollection
The ConfigurationLockCollection of locked attributes (properties) for the element.

The LockAttributes property allows you to lock all the attributes you specify.

To do that you use the Contains method, as explained in the Example section.

NoteNote

The LockAttributes property allows you to prevent the child configuration elements of the element to which you apply the rule from being modified. Use LockItem if you want to put a general lock on the element itself and its child elements.

Notes to Implementers

If you use the LockAllAttributesExcept and LockAttributes properties at the same time, the most restrictive rule applies.

The following example shows how to use the LockAttributes property.

// Show how to use LockAttributes. 
// It locks and unlocks all the urls elements. 
static void LockAttributes()
{

    try
    {
        // Get the current configuration file.
        System.Configuration.Configuration config =
            ConfigurationManager.OpenExeConfiguration(
            ConfigurationUserLevel.None);

        // Get the MyUrls section.
        UrlsSection myUrlsSection =
            config.GetSection("MyUrls") as UrlsSection;

        if (myUrlsSection == null)
            Console.WriteLine("Failed to load UrlsSection.");
        else
        {

            IEnumerator elemEnum =
                 myUrlsSection.Urls.GetEnumerator();

            int i = 0;
            while (elemEnum.MoveNext())
            {

                // Get the current element.
                ConfigurationElement element =
                    myUrlsSection.Urls[i];

                // Get the lock attributes collection of  
                // the current element.
                ConfigurationLockCollection lockAttributes =
                    element.LockAttributes;

                // Add or remove the lock on the attributes. 
                if (lockAttributes.Contains("name"))
                    lockAttributes.Remove("name");
                else
                    lockAttributes.Add("name");

                if (lockAttributes.Contains("url"))
                    lockAttributes.Remove("url");
                else
                    lockAttributes.Add("url");

                if (lockAttributes.Contains("port"))
                    lockAttributes.Remove("port");
                else
                    lockAttributes.Add("port");


                // Get the locket attributes. 
                string lockedAttributes =
                    lockAttributes.AttributeList;

                Console.WriteLine(
                    "Element {0} Locked attributes list: {1}",
                    i.ToString(), lockedAttributes);

                i += 1;

                config.Save(ConfigurationSaveMode.Full);

            }

        }
    }
    catch (ConfigurationErrorsException e)
    {
        Console.WriteLine("[LockAttributes: {0}]",
            e.ToString());
    }

}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft