Нет того. Если Вы действительно хотели использовать VB InputBox в C#, Вы можете. Просто добавьте ссылку на Microsoft.VisualBasic.dll, и Вы найдете его там.
, Но я предложил бы не использование это. Это - ужасный и устаревший IMO.
Решение есть, хотя и не совсем тривиальное. Вы можете создать специальный TemplateLoader, который обертывает другие загрузчики шаблонов и вставляет <#escape x as x? Html> в пролог исходного текста шаблона и добавляет его в качестве эпилога.
Очевидные недостатки: - номера столбцов в первой строке будут сброшены - если ваш шаблон начинается с объявления <#ftl>, вам нужно вставить после него <#escape>.
Чтобы уточнить ответ Аттилы: вы можете использовать такой класс, как этот , а затем обернуть загрузчик шаблона следующим образом:
final TemplateLoader templateLoader = new ClassTemplateLoader(this.getClass(), templatePath) {
/**
* Replaces the normal template reader with something that changes the default
* escaping to HTML as to avoid XSS attacks.
*/
@Override
public Reader getReader(Object templateSource, String encoding) throws IOException {
return new WrappingReader(super.getReader(templateSource, encoding), "<#escape x as x?html>", "</#escape>");
}
};
Если вы не включаете разрывы строк в добавленных частей вы не получите проблемы с нумерацией строк. Однако вы не можете использовать <#ftl> / [# ftl] с этим подходом.