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


Type: System.String
The URL for the document.
Type: System.Guid
The GUID that identifies the document language. This can be Guid.Empty.
Type: System.Guid
The GUID that identifies the document language vendor. This can be Guid.Empty.
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.


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


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 null.

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 =
                        (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
         // Define a dynamic module in "TempAssembly" assembly.
         myModuleBuilder =

         // Define a document for source.on 'TempModule' module.
         ISymbolDocumentWriter myDocument =
         myModuleBuilder.DefineDocument("", SymDocumentType.Text,

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

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

.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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