Export (0) Print
Expand All

ModuleBuilder.DefineDocument Method

Defines a document for source.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Function DefineDocument ( _
	url As String, _
	language As Guid, _
	languageVendor As Guid, _
	documentType As Guid _
) As ISymbolDocumentWriter

Parameters

url
Type: System.String

The URL for the document.

language
Type: System.Guid

The GUID that identifies the document language. This can be Guid.Empty.

languageVendor
Type: System.Guid

The GUID that identifies the document language vendor. This can be Guid.Empty.

documentType
Type: System.Guid

The GUID that identifies the document type. This can be Guid.Empty.

Return Value

Type: System.Diagnostics.SymbolStore.ISymbolDocumentWriter
The defined document.

ExceptionCondition
ArgumentNullException

url is Nothing. This is a change from earlier versions of the .NET Framework.

InvalidOperationException

This method is called on a dynamic module that is not a debug module.

Important noteImportant

Earlier versions of the .NET Framework throw ArgumentException instead of ArgumentNullException when url is Nothing.

The following code sample illustrates the use of DefineDocument to attach an external symbol document (in this case, a raw IL file) to a dynamic module.

Imports System
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Resources
Imports System.Diagnostics.SymbolStore

Namespace ILGenServer

   Public Class CodeGenerator
      Private myModuleBuilder As ModuleBuilder
      Private myAssemblyBuilder As AssemblyBuilder

      Public Sub New()

         ' Get the current application domain for the current thread. 
         Dim currentDomain As AppDomain = AppDomain.CurrentDomain
         Dim myAssemblyName As New AssemblyName()
         myAssemblyName.Name = "TempAssembly" 

         ' Define a dynamic assembly in the current domain.
         myAssemblyBuilder = currentDomain.DefineDynamicAssembly(myAssemblyName, _
                                                         AssemblyBuilderAccess.RunAndSave)
         ' Define a dynamic module in "TempAssembly" assembly.
         myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule", "Resource.mod", True)

         ' Define a document for source.on 'TempModule' module. 
         Dim myDocument As ISymbolDocumentWriter = myModuleBuilder.DefineDocument("RTAsm.il", _
                     SymDocumentType.Text, SymLanguageType.ILAssembly, SymLanguageVendor.Microsoft)
         Console.WriteLine("The object representing the defined document is:" + _
                                                             CObj(myDocument).ToString())

      End Sub 'New 
   End Class 'CodeGenerator

   Public Class CallerClass

      Public Shared Sub Main()
         Dim myGenerator As New CodeGenerator()
      End Sub 'Main
   End Class 'CallerClass
End Namespace 'ILGenServer

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft