ModuleBuilder::DefineDocument Method (String^, Guid, Guid, Guid)
Defines a document for source.
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.
| 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. |
Important |
|---|
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; }
Available since 1.1
Silverlight
Available since 2.0
