При использовании вспомогательных функций тегов ASP.NET Core метод Process вызывает ProcessAsync или наоборот?

Я не могу найти исходный код метода TagHelper в источнике asp.net MVC. Я пытаюсь понять отношения между ними. Я заметил, что для интерфейса ITagHelper требуется только ProcessAsync, поэтому я думаю, что Process должен каким-то образом вызывать ProcessAsync, но я хотел бы найти это в источнике, чтобы лучше понять.

https://docs.microsoft.com/en-us/aspnet/core/api/microsoft.aspnetcore.razor.taghelpers.itaghelper


person Peter Kellner    schedule 05.04.2017    source источник


Ответы (1)


Я думаю, вы видите метод Process, который на самом деле происходит от _ 2_, который реализует _ 3_ и добавляет Process в качестве виртуального метода. В комментарии XML говорится:

Синхронно выполняет TagHelper с заданным контекстом и выходными данными.

Так что реализация этих методов полностью зависит от помощника по тегу. Как вы предлагаете, один из вариантов - один позвонить другому. Реализация полностью зависит от самого компонента. Однако в комментариях XML к методу async говорится следующее:

ProcessAsync: по умолчанию это вызывает Process

И код показывает, как это работает:

public virtual Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
    Process(context, output);
    return TaskCache.CompletedTask;
}
person DavidG    schedule 05.04.2017
comment
не могли бы вы опубликовать ссылку на опубликованный вами код processAsync. Спасибо - person Peter Kellner; 05.04.2017
comment
Спасибо @DavidG, гиперссылку не заметил. Кроме того, спасибо, что сообщили мне, где (движок просмотра бритвы). В этом есть смысл. - person Peter Kellner; 05.04.2017