英語で読む

次の方法で共有


ModuleBuilder.DefineDocument メソッド

定義

オーバーロード

DefineDocument(String, Guid)

ソースのドキュメントを定義します。

DefineDocument(String, Guid, Guid, Guid)

ソースのドキュメントを定義します。

DefineDocument(String, Guid)

ソースのドキュメントを定義します。

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

パラメーター

url
String

ドキュメントの URL。

language
Guid

ドキュメント言語を識別する GUID。 これは省略可能です。

戻り値

定義されたドキュメント。

例外

urlnullです。

このメソッドは、永続化されたモジュールではない動的モジュールで呼び出されます。

適用対象

.NET 9
製品 バージョン
.NET 9

DefineDocument(String, Guid, Guid, Guid)

ソースのドキュメントを定義します。

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

パラメーター

url
String

ドキュメントの URL。

language
Guid

ドキュメント言語を識別する GUID。 これは Emptyできます。

languageVendor
Guid

ドキュメント言語ベンダーを識別する GUID。 これは Emptyできます。

documentType
Guid

ドキュメントの種類を識別する GUID。 これは Emptyできます。

戻り値

定義されたドキュメント。

例外

urlnullです。 これは、以前のバージョンの .NET Framework からの変更です。

このメソッドは、デバッグ モジュールではない動的モジュールで呼び出されます。

次のコード サンプルは、DefineDocument を使用して外部シンボル ドキュメント (この場合は生の IL ファイル) を動的モジュールにアタッチする方法を示しています。

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

注釈

重要

以前のバージョンの .NET Framework では、urlnullされたときに ArgumentNullException ではなく、ArgumentException がスローされます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 9
.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