Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ModuleBuilder::DefineDocument Method (String^, Guid, Guid, Guid)

 

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^

The defined document.

Exception Condition
ArgumentNullException

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

System_CAPS_importantImportant

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 namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Resources;
using namespace System::Diagnostics::SymbolStore;
public ref class CodeGenerator
{
private:
   ModuleBuilder^ myModuleBuilder;
   AssemblyBuilder^ myAssemblyBuilder;

public:
   CodeGenerator()
   {

      // Get the current application domain for the current thread.
      AppDomain^ currentDomain = AppDomain::CurrentDomain;
      AssemblyName^ myAssemblyName = gcnew AssemblyName;
      myAssemblyName->Name = "TempAssembly";

      // Define a dynamic assembly in the current domain.
      myAssemblyBuilder = currentDomain->DefineDynamicAssembly( myAssemblyName, AssemblyBuilderAccess::RunAndSave );

      // Define a dynamic module in S"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: {0}", myDocument );
   }

};

int main()
{
   CodeGenerator^ myGenerator = gcnew CodeGenerator;
}

.NET Framework
Available since 1.1
Silverlight
Available since 2.0
Return to top
Show:
© 2017 Microsoft