ISymbolDocumentWriter Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje dokument odkazovaný úložištěm symbolů.
public interface class ISymbolDocumentWriter
public interface ISymbolDocumentWriter
[System.Runtime.InteropServices.ComVisible(true)]
public interface ISymbolDocumentWriter
type ISymbolDocumentWriter = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type ISymbolDocumentWriter = interface
Public Interface ISymbolDocumentWriter
- Odvozené
- Atributy
Příklady
Následující příklad kódu ukazuje, jak lze získat při ISymbolDocumentWriter volání DefineDocument.
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;
}
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();
}
}
}
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
End Class
Public Class CallerClass
Public Shared Sub Main()
Dim myGenerator As New CodeGenerator()
End Sub
End Class
End Namespace 'ILGenServer
Poznámky
Dokument je definován adresou URL a identifikátorem GUID typu dokumentu. Volitelně může být zdroj dokumentu uložen v úložišti symbolů.
Poznámka
Toto rozhraní je spravovaným protějškem ISymUnmanagedDocumentWriter
rozhraní, které je jedním z nespravovaných rozhraní úložiště symbolů, které poskytují alternativní způsob čtení a zápisu informací o symbolech ladění.
Metody
SetCheckSum(Guid, Byte[]) |
Nastaví informace o kontrolním součtu. |
SetSource(Byte[]) |
Uloží nezpracovaný zdroj dokumentu do úložiště symbolů. |