ConfigurationElement.LockElements Property

Definition

Gets the collection of locked elements.

public:
 property System::Configuration::ConfigurationLockCollection ^ LockElements { System::Configuration::ConfigurationLockCollection ^ get(); };
public System.Configuration.ConfigurationLockCollection LockElements { get; }
member this.LockElements : System.Configuration.ConfigurationLockCollection
Public ReadOnly Property LockElements As ConfigurationLockCollection

Property Value

The ConfigurationLockCollection of locked elements.

Examples

The following example shows how to use the LockElements property.

// Show how to use LockElements
// It locks and unlocks the urls element.
static void LockElements()
{

    try
    {
        // Get the 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
        {
            // Get MyUrls section LockElements collection.
            ConfigurationLockCollection lockElements =
                myUrlsSection.LockElements;

            // Get MyUrls section LockElements collection 
            // enumerator.
            IEnumerator lockElementEnum =
                 lockElements.GetEnumerator();

            // Position the collection index.
            lockElementEnum.MoveNext();

            if (lockElements.Contains("urls"))
                // Remove the lock on the urls element.
                lockElements.Remove("urls");
            else
                // Add the lock on the urls element.
                lockElements.Add("urls");

            // Save the change.
            config.Save(ConfigurationSaveMode.Full);
        }
    }
    catch (ConfigurationErrorsException err)
    {
        Console.WriteLine("[LockElements: {0}]",
            err.ToString());
    }
}
' Show how to use LockElements
' It locks and unlocks the urls element.
Shared Sub LockElements()

    Try
        ' Get the current configuration file.
        Dim config _
        As System.Configuration.Configuration = _
        ConfigurationManager.OpenExeConfiguration( _
        ConfigurationUserLevel.None)

        ' Get the MyUrls section.
        Dim myUrlsSection As UrlsSection = _
        config.GetSection("MyUrls")

        If myUrlsSection Is Nothing Then
            Console.WriteLine("Failed to load UrlsSection.")
        Else
            ' Get MyUrls section LockElements collection.
            Dim lockElements _
            As ConfigurationLockCollection = _
            myUrlsSection.LockElements

            ' Get MyUrls section LockElements collection 
            ' enumerator.
            Dim lockElementEnum As IEnumerator = _
            lockElements.GetEnumerator()

            ' Position the collection index.
            lockElementEnum.MoveNext()

            If lockElements.Contains("urls") Then
                ' Remove the lock on the urls element.
                lockElements.Remove("urls")
            Else
                ' Add the lock on the urls element.
                lockElements.Add("urls")
            End If
            ' Save the change.
            config.Save(ConfigurationSaveMode.Full)
        End If

    Catch err As ConfigurationErrorsException
        Console.WriteLine("[LockElements: {0}]", _
        err.ToString())
    End Try

End Sub

Remarks

The LockElements property allows you to lock all the elements you specify.

To do that, you use the Contains method, as explained in the next example.

Note

The LockElements 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.

Applies to

See also