Поделиться через


EmitBaseline.CreateInitialBaseline Метод

Определение

Перегрузки

CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>)
Устаревшие..

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)
Устаревшие..

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

CreateInitialBaseline(Compilation, ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>)

Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs

Внимание!

This overload is no longer supported

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

public:
 static Microsoft::CodeAnalysis::Emit::EmitBaseline ^ CreateInitialBaseline(Microsoft::CodeAnalysis::ModuleMetadata ^ module, Func<System::Reflection::Metadata::MethodDefinitionHandle, Microsoft::CodeAnalysis::Emit::EditAndContinueMethodDebugInformation> ^ debugInformationProvider);
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider);
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Obsolete("This overload is no longer supported", true)]
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> -> Microsoft.CodeAnalysis.Emit.EmitBaseline
[<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)>]
[<System.Obsolete("This overload is no longer supported", true)>]
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation)) As EmitBaseline

Параметры

module
ModuleMetadata

Метаданные модуля перед редактированием.

debugInformationProvider
Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>

Функция, которая для дескриптора метода возвращает отладочную информацию о редактировании и продолжении, выдаваемую компилятором в PDB. Функция должна вызывать исключение InvalidDataException , если отладочная информация не может быть прочитана для указанного метода. Это исключение и IOException перехватываются и преобразуются в диагностику выдачи. Передаются другие исключения.

Возвращаемое значение

Объект EmitBaseline для модуля.

Атрибуты

Исключения

module не является изображением PE.

Параметр debugInformationProvider имеет значение null.

Ошибка при чтении метаданных модуля.

Недопустимые метаданные модуля.

Модуль удален.

Применяется к

CreateInitialBaseline(ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)

Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs

Внимание!

This overload is no longer supported

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

public:
 static Microsoft::CodeAnalysis::Emit::EmitBaseline ^ CreateInitialBaseline(Microsoft::CodeAnalysis::ModuleMetadata ^ module, Func<System::Reflection::Metadata::MethodDefinitionHandle, Microsoft::CodeAnalysis::Emit::EditAndContinueMethodDebugInformation> ^ debugInformationProvider, Func<System::Reflection::Metadata::MethodDefinitionHandle, System::Reflection::Metadata::StandaloneSignatureHandle> ^ localSignatureProvider, bool hasPortableDebugInformation);
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Obsolete("This overload is no longer supported", true)]
public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
[<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)>]
[<System.Obsolete("This overload is no longer supported", true)>]
static member CreateInitialBaseline : Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation), localSignatureProvider As Func(Of MethodDefinitionHandle, StandaloneSignatureHandle), hasPortableDebugInformation As Boolean) As EmitBaseline

Параметры

module
ModuleMetadata

Метаданные модуля перед редактированием.

debugInformationProvider
Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>

Функция, которая для дескриптора метода возвращает отладочную информацию о редактировании и продолжении, выдаваемую компилятором в PDB. Функция должна вызывать исключение InvalidDataException , если отладочная информация не может быть прочитана для указанного метода. Это исключение и IOException перехватываются и преобразуются в диагностику выдачи. Передаются другие исключения.

localSignatureProvider
Func<MethodDefinitionHandle,StandaloneSignatureHandle>

Функция, которая для дескриптора метода возвращает сигнатуру локальных переменных. Функция должна вызывать исключение InvalidDataException , если данные не могут быть прочитаны для указанного метода. Это исключение и IOException перехватываются и преобразуются в диагностику выдачи. Передаются другие исключения.

hasPortableDebugInformation
Boolean

Значение true, если базовый PDB-файл является переносимым.

Возвращаемое значение

Объект EmitBaseline для модуля.

Атрибуты

Исключения

Параметр localSignatureProvider имеет значение null.

Ошибка при чтении метаданных модуля.

Недопустимые метаданные модуля.

Модуль удален.

Комментарии

С помощью этого метода создается только начальная базовая база; последующие базовые показатели создаются автоматически при создании различий в последующих компиляциях.

При обновлении активного метода (для которого кадр выделен в стеке) необходимо сохранить значения его локальных переменных. Сопоставление имен локальных переменных с их слотами в кадре не включается в метаданные и поэтому должно быть предоставлено .debugInformationProvider

Требуется debugInformationProvider только для первоначального создания. Сопоставление для последующих поколений осуществляется через EmitBaseline. Компилятор назначает слоты именованным локальным переменным (включая именованные временные переменные) в порядке, в котором они отображаются в исходном коде. Это свойство позволяет компилятору воссоздать сопоставление локальных переменных для первоначального создания. Последующее поколение может добавить новую переменную между двумя переменными предыдущего поколения. Так как слоты переменных предыдущего поколения должны быть сохранены, единственным вариантом является добавление этих новых переменных в конец. Таким образом, порядок слотов больше не соответствует упорядочению синтаксиса. Поэтому необходимо передать Baseline в следующее поколение (а не создавать новые EmitBaselineс нуля на основе метаданных, полученных в последующих компиляциях).

Применяется к

CreateInitialBaseline(Compilation, ModuleMetadata, Func<MethodDefinitionHandle, EditAndContinueMethodDebugInformation>, Func<MethodDefinitionHandle, StandaloneSignatureHandle>, Boolean)

Исходный код:
EmitBaseline.cs
Исходный код:
EmitBaseline.cs

Создает из EmitBaseline метаданных модуля перед редактированием и из функции, которая сопоставляет метод с массивом локальных имен.

public static Microsoft.CodeAnalysis.Emit.EmitBaseline CreateInitialBaseline (Microsoft.CodeAnalysis.Compilation compilation, Microsoft.CodeAnalysis.ModuleMetadata module, Func<System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> debugInformationProvider, Func<System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle> localSignatureProvider, bool hasPortableDebugInformation);
static member CreateInitialBaseline : Microsoft.CodeAnalysis.Compilation * Microsoft.CodeAnalysis.ModuleMetadata * Func<System.Reflection.Metadata.MethodDefinitionHandle, Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation> * Func<System.Reflection.Metadata.MethodDefinitionHandle, System.Reflection.Metadata.StandaloneSignatureHandle> * bool -> Microsoft.CodeAnalysis.Emit.EmitBaseline
Public Shared Function CreateInitialBaseline (compilation As Compilation, module As ModuleMetadata, debugInformationProvider As Func(Of MethodDefinitionHandle, EditAndContinueMethodDebugInformation), localSignatureProvider As Func(Of MethodDefinitionHandle, StandaloneSignatureHandle), hasPortableDebugInformation As Boolean) As EmitBaseline

Параметры

compilation
Compilation

Начальное Microsoft.CodeAnalysis.Emit.EmitBaseline.Compilationзначение .

module
ModuleMetadata

Метаданные модуля перед редактированием.

debugInformationProvider
Func<MethodDefinitionHandle,EditAndContinueMethodDebugInformation>

Функция, которая для дескриптора метода возвращает отладочную информацию о редактировании и продолжении, выдаваемую компилятором в PDB. Функция должна вызывать исключение InvalidDataException , если отладочная информация не может быть прочитана для указанного метода. Это исключение и IOException перехватываются и преобразуются в диагностику выдачи. Передаются другие исключения.

localSignatureProvider
Func<MethodDefinitionHandle,StandaloneSignatureHandle>

Функция, которая для дескриптора метода возвращает сигнатуру локальных переменных. Функция должна вызывать исключение InvalidDataException , если данные не могут быть прочитаны для указанного метода. Это исключение и IOException перехватываются и преобразуются в диагностику выдачи. Передаются другие исключения.

hasPortableDebugInformation
Boolean

Значение true, если базовый PDB-файл является переносимым.

Возвращаемое значение

Объект EmitBaseline для модуля.

Исключения

Параметр localSignatureProvider имеет значение null.

Ошибка при чтении метаданных модуля.

Недопустимые метаданные модуля.

Модуль удален.

Комментарии

С помощью этого метода создается только начальная базовая база; последующие базовые показатели создаются автоматически при создании различий в последующих компиляциях.

При обновлении активного метода (для которого кадр выделен в стеке) необходимо сохранить значения его локальных переменных. Сопоставление имен локальных переменных с их слотами в кадре не включается в метаданные и поэтому должно быть предоставлено .debugInformationProvider

Требуется debugInformationProvider только для первоначального создания. Сопоставление для последующих поколений осуществляется через EmitBaseline. Компилятор назначает слоты именованным локальным переменным (включая именованные временные переменные) в порядке, в котором они отображаются в исходном коде. Это свойство позволяет компилятору воссоздать сопоставление локальных переменных для первоначального создания. Последующее поколение может добавить новую переменную между двумя переменными предыдущего поколения. Так как слоты переменных предыдущего поколения должны быть сохранены, единственным вариантом является добавление этих новых переменных в конец. Таким образом, порядок слотов больше не соответствует упорядочению синтаксиса. Поэтому необходимо передать Baseline в следующее поколение (а не создавать новые EmitBaselineс нуля на основе метаданных, полученных в последующих компиляциях).

Применяется к