ISymbolDocumentWriter インターフェイス
アセンブリ: mscorlib (mscorlib.dll 内)


ドキュメントは URL とドキュメントの種類の GUID で定義します。シンボル ストアには、ドキュメント ソースも格納できます。
![]() |
---|
このインターフェイスはマネージ インターフェイスであり、デバッグ シンボル情報を読み書きする代替方法を提供するアンマネージ シンボル ストア インターフェイスの 1 つである ISymUnmanagedDocumentWriter インターフェイスと対応しています。 |

DefineDocument を呼び出したときに ISymbolDocumentWriter を取得する方法を次の例で示します。
Imports System Imports System.Reflection Imports System.Reflection.Emit Imports System.Resources Imports System.Diagnostics.SymbolStore Namespace ILGenServer Public Class CodeGenerator Private myModuleBuilder As ModuleBuilder Private myAssemblyBuilder As AssemblyBuilder Public Sub New() ' Get the current application domain for the current thread. Dim currentDomain As AppDomain = AppDomain.CurrentDomain Dim myAssemblyName As 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. Dim myDocument As ISymbolDocumentWriter = myModuleBuilder.DefineDocument("RTAsm.il", _ SymDocumentType.Text, SymLanguageType.ILAssembly, SymLanguageVendor.Microsoft) Console.WriteLine("The object representing the defined document is:" + _ CObj(myDocument).ToString()) End Sub 'New End Class 'CodeGenerator Public Class CallerClass Public Shared Sub Main() Dim myGenerator As New CodeGenerator() End Sub 'Main End Class 'CallerClass End Namespace 'ILGenServer
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(); } } }
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; }
import System.*; import System.Reflection.*; import System.Reflection.Emit.*; import System.Resources.*; import System.Diagnostics.SymbolStore.*; public class CodeGenerator { private ModuleBuilder myModuleBuilder; private AssemblyBuilder myAssemblyBuilder; public CodeGenerator() { // Get the current application domain for the current thread. AppDomain currentDomain = AppDomain.get_CurrentDomain(); AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.set_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); } //CodeGenerator } //CodeGenerator public class CallerClass { public static void main(String[] args) { CodeGenerator myGenerator = new CodeGenerator(); } //main } //CallerClass

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ISymbolDocumentWriter メンバ
System.Diagnostics.SymbolStore 名前空間
ISymbolWriter
ILGenerator.MarkSequencePoint
ModuleBuilder.DefineDocument
ISymbolDocumentWriter メソッド


関連項目
ISymbolDocumentWriter インターフェイスSystem.Diagnostics.SymbolStore 名前空間
ISymbolWriter
ILGenerator.MarkSequencePoint
ModuleBuilder.DefineDocument
ISymbolDocumentWriter メンバ
- ISymbolDocumentWriterのページへのリンク