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


ITextTemplatingEngineHost.LogErrors - метод

Получает коллекцию ошибок и предупреждений из модуля преобразования.

Пространство имен:  Microsoft.VisualStudio.TextTemplating
Сборка:  Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (в Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)

Синтаксис

'Декларация
Sub LogErrors ( _
    errors As CompilerErrorCollection _
)
void LogErrors(
    CompilerErrorCollection errors
)
void LogErrors(
    CompilerErrorCollection^ errors
)
abstract LogErrors : 
        errors:CompilerErrorCollection -> unit 
function LogErrors(
    errors : CompilerErrorCollection
)

Параметры

Заметки

Обработчик вызывает этот метод, когда заканчивает обработку текстового шаблона, и передает все произошедшие ошибки в основное приложение. Основное приложение может решить, как отображать их. Например, основное приложение может отображать сообщения об ошибках в пользовательском интерфейсе или записывать их в файл.

Примеры

Этот метод можно вызвать из текстового шаблона. Также следует задать свойство hostspecific="true".

<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<#@ import namespace="System.CodeDom.Compiler" #>
<#
  string message = "test message";
  this.Host.LogErrors(new CompilerErrorCollection() 
    { new CompilerError(
       this.Host.TemplateFile, // Identify the source of the error.
       0, 0, "0",   // Line, column, error ID.
       message) }); // Message displayed in error window.
#>

В следующем примере кода показана возможная реализация пользовательского основного приложения. В этом примере ошибки хранятся в свойстве. Программа, создающая экземпляр пользовательского основного приложения, будет обращаться к свойству и записывать ошибки в Console. Данный пример кода является частью большего примера. Полный пример см. в разделе Пошаговое руководство. Создание пользовательского хост-класса для текстовых шаблонов.

private CompilerErrorCollection errorsValue;

public void LogErrors(CompilerErrorCollection errors)
{
    errorsValue = errors;
}
Private errorsValue As CompilerErrorCollection

Public Sub LogErrors(ByVal errors As System.CodeDom.Compiler.CompilerErrorCollection) Implements Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.LogErrors

    errorsValue = errors
End Sub

В следующем примере кода показана другая возможная реализация пользовательского основного приложения. В этом примере ошибки записываются в Console немедленно.

public void LogErrors(CompilerErrorCollection errors)
{
    foreach (CompilerError error in errors)
    {
        Console.WriteLine(error.ToString());
    }
}
Public Sub LogErrors(ByVal errors As System.CodeDom.Compiler.CompilerErrorCollection) Implements Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.LogErrors

    Dim e As CompilerError
    For Each e In errors
        Console.WriteLine(e.ToString())
    Next
End Sub

Безопасность платформы .NET Framework

См. также

Ссылки

ITextTemplatingEngineHost Интерфейс

Microsoft.VisualStudio.TextTemplating - пространство имен

CompilerErrorCollection

Другие ресурсы

Пошаговое руководство. Создание пользовательского хост-класса для текстовых шаблонов