ModuleBuilder.DefineDocument Yöntem

Tanım

Aşırı Yüklemeler

DefineDocument(String, Guid)

Kaynak için bir belge tanımlar.

DefineDocument(String, Guid, Guid, Guid)

Kaynak için bir belge tanımlar.

DefineDocument(String, Guid)

Kaynak için bir belge tanımlar.

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

Parametreler

url
String

Belgenin URL'si.

language
Guid

Belge dilini tanımlayan GUID. Bu isteğe bağlıdır.

Döndürülenler

Tanımlanan belge.

Özel durumlar

Bu yöntem, kalıcı bir modül olmayan dinamik modülde çağrılır.

Şunlara uygulanır

.NET 10 ve .NET 9
Ürün Sürümler
.NET 9, 10

DefineDocument(String, Guid, Guid, Guid)

Kaynak için bir belge tanımlar.

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

Parametreler

url
String

Belgenin URL'si.

language
Guid

Belge dilini tanımlayan GUID. Bu Emptyolabilir.

languageVendor
Guid

Belge dili satıcısını tanımlayan GUID. Bu Emptyolabilir.

documentType
Guid

Belge türünü tanımlayan GUID. Bu Emptyolabilir.

Döndürülenler

Tanımlanan belge.

Özel durumlar

url null. Bu, .NET Framework'ün önceki sürümlerinde yapılan bir değişikliktir.

Bu yöntem, hata ayıklama modülü olmayan bir dinamik modülde çağrılır.

Örnekler

Aşağıdaki kod örneği, dinamik modüle dış simge belgesi (bu örnekte ham IL dosyası) eklemek için DefineDocument kullanımını gösterir.

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

Açıklamalar

Önemli

.NET Framework'ün önceki sürümleri, urlnullolduğunda ArgumentNullException yerine ArgumentException oluşturur.

Şunlara uygulanır

.NET 10 ve diğer sürümler
Ürün Sürümler
.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