XslTransform по сравнению с XslCompiledTransform

@model UserBindingModel сообщает механизму Razor, что тип модели UserBindingModel, он объявляет переменную Model как тип UserBindingModel:

UserBindingModel Model;

, поэтому при использовании ключевого слова [ 115], он будет ссылаться на модель, которую вы определили:

@Model.ID

Так как он просто объявляет переменную Model, он не выдаст ошибку, но когда вы выводите переменные / свойства UserBindingModel ( например, @ Model.ID), который не был инициализирован и передан из контроллера, вы получите ошибку: NullReferenceException: Object reference not set to an instance of an object.

6
задан JM. 16 March 2011 в 22:37
поделиться

3 ответа

Вы могли бы хотеть видеть зарегистрированные различия между XslTransform и XslCompiledTransform здесь и здесь, и принимают решение самостоятельно.

Кроме того, существуют некоторые случаи, в которых XslTransform является большим количеством incompliant. Больше работы было сделано на безопасности в XslCompiledTransform.

Так, много причин нужно рассмотреть использование нового XslCompiledTransform вместо старого XslTransform, даже в случаях, куда преобразование будет выполнено только однажды и могло быть немного быстрее со старым XslTransform.

4
ответ дан 10 December 2019 в 02:54
поделиться

Необходимо использовать XslCompiledTransform в любом случае, так как XslTransform обесценивается и может быть удален из будущих версий платформы.

1
ответ дан 10 December 2019 в 02:54
поделиться

Ну, у Вас есть (медленное) время выполнения XslTransform по сравнению со временем компиляции XslCompiledTransform плюс его (быстрое) время выполнения. Нет никакого теоретического способа решить это сравнение окончательно.

Теория предлагает: время выполнения зависит от входа и требуемых операций, и время компиляции зависит от сложности XSLT. Practice подтверждает, что с тривиальным входом и сложным XSLT одно выполнение времени XslTransform определенно быть быстрее.

Однако для всех реальных приложений Вы захотите XslCompiledTransform, если только для того, что XslTransform удерживается от использования и может содержать дефекты, которые никогда не будут фиксироваться. У меня на самом деле были некоторые таблицы стилей, ведущие себя странно под XslTransform и работающие отлично под XslCompiledTransform.

2
ответ дан 10 December 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: