Кажется, нет: (
Шаблоны DisplayTemplates являются общими, например ::100100
@Html.DisplayFor(model => model.Foo)
Чтобы использовать [Obsolete]
, вам нужно отметить метод DisplayFor, который будет применяться ких всех. Я попытался создать «более конкретную» версию, чтобы посмотреть, подхватит ли она это (поскольку вы можете затем пометить это как [Obsolete]
, например:
public static class MyExtensions
{
[Obsolete]
public static MvcHtmlString DisplayFor<TModel, DateTime>(this HtmlHelper<TModel> html, Expression<Func<TModel, DateTime>> expression)
{
return html.DisplayFor(expression);
}
}
К сожалению, это не такне работает - выдает следующую ошибку:
Сообщение об ошибке компилятора: CS0121 : вызов неоднозначен между следующими методами или свойствами: 'MvcApplication11.Models.MyExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>) 'и' System.Web.Mvc.Html.DisplayExtensions.DisplayFor (System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)'
Так что я не думаю, что вы можете достичь того, что вам нужно, с помощью [Obsolete]
. Если вы действительно не можете выбрать вызовы DisplayFor в IDE, вы можете попробовать записать трассировку стека.внутри шаблона (так как вы можете выполнить любой C # внутри него) изатем работает через приложение.Это не будет пуленепробиваемым, но может немного помочь.