File: system\diagnostics\symbolstore\isymscope.cs
Project: ndp\clr\src\bcl\mscorlib.csproj (mscorlib)
// ==++==
// 
//   Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// ==--==
/*============================================================
**
** Class:  ISymbolScope
**
**
** Represents a lexical scope within a ISymbolMethod. Provides access to
** the start and end offsets of the scope, as well as its child and
** parent scopes. Also provides access to all the locals defined
** within this scope.
**
** 
===========================================================*/
namespace System.Diagnostics.SymbolStore {
    // Interface does not need to be marked with the serializable attribute
    using System;
    using System.Text;
    using System.Runtime.InteropServices;
 
[System.Runtime.InteropServices.ComVisible(true)]
    public interface ISymbolScope
    {
        // Get the method that contains this scope.
        ISymbolMethod Method { get; }
 
        // Get the parent scope of this scope.
        ISymbolScope Parent { get; }
 
        // Get any child scopes of this scope.
        ISymbolScope[] GetChildren();
 
        // Get the start and end offsets for this scope.
        int StartOffset { get; }
        int EndOffset { get; }
 
        // Get the locals within this scope. They are returned in no
        // particular order. Note: if a local variable changes its address
        // within this scope then that variable will be returned multiple
        // times, each with a different offset range.
        ISymbolVariable[] GetLocals();
 
        // Get the namespaces that are being "used" within this scope.
        ISymbolNamespace[] GetNamespaces();
    }
}