ModuleBuilder.DefineDocument Método

Definição

Sobrecargas

DefineDocument(String, Guid)

Define um documento para a origem.

DefineDocument(String, Guid, Guid, Guid)

Define um documento para a origem.

DefineDocument(String, Guid)

Define um documento para a origem.

C#
public System.Diagnostics.SymbolStore.ISymbolDocumentWriter DefineDocument(string url, Guid language = default);

Parâmetros

url
String

A URL do documento.

language
Guid

O GUID que identifica o idioma do documento. Isso é opcional.

Retornos

O documento definido.

Exceções

url é null.

Esse método é chamado em um módulo dinâmico que não é um módulo persistente.

Aplica-se a

.NET 10 e .NET 9
Produto Versões
.NET 9, 10

DefineDocument(String, Guid, Guid, Guid)

Define um documento para a origem.

C#
public System.Diagnostics.SymbolStore.ISymbolDocumentWriter DefineDocument(string url, Guid language, Guid languageVendor, Guid documentType);

Parâmetros

url
String

A URL do documento.

language
Guid

O GUID que identifica o idioma do documento. Isso pode ser Empty.

languageVendor
Guid

O GUID que identifica o fornecedor de idiomas do documento. Isso pode ser Empty.

documentType
Guid

O GUID que identifica o tipo de documento. Isso pode ser Empty.

Retornos

O documento definido.

Exceções

url é null. Essa é uma alteração das versões anteriores do .NET Framework.

Esse método é chamado em um módulo dinâmico que não é um módulo de depuração.

Exemplos

O exemplo de código a seguir ilustra o uso de DefineDocument para anexar um documento de símbolo externo (nesse caso, um arquivo IL bruto) a um módulo dinâmico.

C#
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();
      }
   }
}

Comentários

Importante

Versões anteriores do .NET Framework geram ArgumentException em vez de ArgumentNullException quando url é null.

Aplica-se a

.NET 10 e outras versões
Produto Versões
.NET 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1