Я думаю, что вы не можете.Во всяком случае, не в разметке.Вы можете использовать скрытое поле в качестве другого ответа, сказанного (Обновление: другой парень удалил его позже!) , и я обычно, когда делаю такое, устанавливаю видимым false и viewstate false, но эй, зачем вообще это нужно?..
В событиях привязки данных можно делать все виды забав, но это не будет сильно отличаться от глобальной переменной.
Но, опять же, возможно, вы пытаетесь решить не ту проблему!Помните, что это .NET, а не C ++.Даже если переменная находится вне области видимости, она будет собираться только при необходимости.Даже для объекта типа значения, насколько большим он может быть?
Кроме того, сколько времени длится весь жизненный цикл страницы по сравнению с ретранслятором?
Если объект действительно «такой« дорогой, и вы »на самом деле «знайте в цифрах вескую причину, по которой вы не хотите, чтобы он работал дольше, чем привязка данных, тогда это также должен быть одноразовый объект (чтобы гарантировать надлежащую очистку ресурса), и тогда я мог бы сделать что-то вроде:
protected MyObjectType MyObject;
protected void BindRepeater(IEnumerable someDataSource)
{
using(MyObject = SomeClass.SomeMethodToGetObject())
{
myRepeater.DataSource = someDataSource;
myRepeater.DataBind();
}
}
Здесь using
должен гарантировать очистку путем неявного вызова Dispose()
.Конечно, он все еще грязный, так как кто-то может ошибиться и использовать MyObject
в другом месте, когда он удаляется или не назначается, даже если я размещаю комментарии и все такое, и в конце концов это глобальная переменная - да, это обман или работа-ограниченное ограничение.
Опять же, я не предлагаю вам сделать код выше.Я просто показываю, что возможно, если вы действительно знаете в цифрах, почему вы хотите это сделать (в противном случае это называется преждевременной оптимизацией, при попытке решить проблему вы можете получить ту же или даже чуть меньшую производительность или, в лучшем случае, получить очень незначительную).повышение производительности).Здесь я рекомендую еще раз взглянуть на проблему и убедиться, что она вам действительно нужна.
Другой подход к решению этой проблемы также совершенно противоположен минимизации времени жизни, на самом деле это увеличивает срок службы, например, помещая объектв кеше или о чем-то еще. Так, чтобы вам не приходилось создавать его больше, чем нужно, или хранить много одинаковых больших копий, но это, конечно, зависит от того, какие данные