This documentation is archived and is not being maintained.

ModuleBuilder.DefineDocument Method

Defines a document for source.

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

public ISymbolDocumentWriter DefineDocument(
	string url,
	Guid language,
	Guid languageVendor,
	Guid documentType
)

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
An ISymbolDocumentWriter object representing the defined document.

ExceptionCondition
ArgumentException

url is null.

InvalidOperationException

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

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.

using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Resources;
using System.Diagnostics.SymbolStore;

namespace ILGenServer
{
   public class CodeGenerator
   {
      ModuleBuilder myModuleBuilder ;
      AssemblyBuilder myAssemblyBuilder ;

      public CodeGenerator()
      {

         // Get the current application domain for the current thread.
         AppDomain currentDomain = AppDomain.CurrentDomain;
         AssemblyName myAssemblyName = 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.
         ISymbolDocumentWriter myDocument =
         myModuleBuilder.DefineDocument("RTAsm.il", SymDocumentType.Text,
                  SymLanguageType.ILAssembly,SymLanguageVendor.Microsoft);

         Console.WriteLine("The object representing the defined document is:"+myDocument);

      }
   }
   public class CallerClass
   {
      public static void Main()
      {
         CodeGenerator myGenerator = new CodeGenerator();
      }
   }
}

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Show: