| 
        public interface ISymbolWriter
       | 
| Close | Closes ISymbolWriter and commits the symbols to the symbol store. | 
| CloseMethod | Closes the current method. | 
| CloseNamespace | Closes the most recent namespace. | 
| CloseScope | Closes the current lexical scope. | 
| DefineDocument | Defines a source document. | 
| DefineField | Defines a field in a type or a global field. | 
| DefineGlobalVariable | Defines a single global variable. | 
| DefineLocalVariable | Defines a single variable in the current lexical scope. | 
| DefineParameter | Defines a single parameter in the current method. The type of each parameter is taken from its position within the signature of the method. | 
| DefineSequencePoints | Defines a group of sequence points within the current method. | 
| Initialize | Sets the metadata emitter interface to associate with a writer. | 
| OpenMethod | Opens a method to place symbol information into. | 
| OpenNamespace | Opens a new namespace. | 
| OpenScope | Opens a new lexical scope in the current method. | 
| SetMethodSourceRange | Specifies the true start and end of a method within a source file. Use ISymbolWriter.SetMethodSourceRange to specify the extent of a method, independent of the sequence points that exist within the method. | 
| SetScopeRange | Defines the offset range for the specified lexical scope. | 
| SetSymAttribute | Defines an attribute when given the attribute name and the attribute value. | 
| SetUnderlyingWriter | Sets the underlying ISymUnmanagedWriter (the corresponding unmanaged API) that a managed ISymbolWriter uses to emit symbols. | 
| SetUserEntryPoint | Identifies the user-defined method as the entry point for the current module. | 
| UsingNamespace | Specifies that the given, fully-qualified namespace name is used within the open lexical scope. | 
| 
            void Close(); | 
| 
            void CloseMethod(); | 
| 
            void CloseNamespace(); | 
| 
            void CloseScope( | 
endOffset
| 
            ISymbolDocumentWriter DefineDocument( | 
url
language
languageVendor
documentType
| 
            void DefineField( | 
parent
name
attributes
signature
addrKind
addr1
addr2
addr3
| 
            void DefineGlobalVariable( | 
name
attributes
signature
addrKind
addr1
addr2
addr3
| 
            void DefineLocalVariable( | 
name
attributes
signature
addrKind
addr1
addr2
addr3
startOffset
endOffset
You can call ISymbolWriter.DefineLocalVariable multiple times for a variable of the same name that occurs multiple times in different offset ranges throughout a scope. (In this case, start and end offsets must not overlap.)
| 
            void DefineParameter( | 
name
attributes
sequence
addrKind
addr1
addr2
addr3
| 
            void DefineSequencePoints( | 
document
offsets
lines
columns
endLines
endColumns
emitter
filename
fFullBuild
| 
            void OpenMethod( | 
method
| 
            void OpenNamespace( | 
name
startOffset
Scope identifiers are only valid in the current method.
| 
            void SetMethodSourceRange( | 
startDoc
startLine
startColumn
endDoc
endLine
endColumn
scopeID
startOffset
endOffset
| 
            void SetSymAttribute( | 
parent
name
data
| 
            void SetUnderlyingWriter( | 
underlyingWriter
| 
            void SetUserEntryPoint( | 
entryMethod
| 
            void UsingNamespace( | 
fullName