TeamCity - ссылка на номер сборки от другой Конфигурации сборки

Я часто сталкивался с потребностью сохранить универсальный объект параметра в состояние отображения в базовом классе.

public abstract class BaseListControl<ListType,KeyType,ParameterType>
                 : UserControl 
                 where ListType : BaseListType
                 && ParameterType : BaseParameterType, new
{

    private const string viewStateFilterKey = "FilterKey";

    protected ParameterType Filters
    {
        get
        {
            if (ViewState[viewStateFilterKey] == null)
                ViewState[viewStateFilterKey]= new ParameterType();

            return ViewState[viewStateFilterKey] as ParameterType;
        }
        set
        {
            ViewState[viewStateFilterKey] = value;
        }
    }

}

Использование:

private void SomeEventHappened(object sender, EventArgs e)
{
    Filters.SomeValue = SomeControl.SelectedValue;
}

private void TimeToFetchSomeData()
{
    GridView.DataSource = Repository.GetList(Filters);
}

Этот небольшой прием с, "где ParameterType: BaseParameterType, новый", то, что заставляет его действительно работать.

С этим свойством в моем базовом классе, я могу автоматизировать обработку подкачки страниц, устанавливания значений фильтра для фильтрации gridview, сделать сортировку действительно легкой, и т.д.

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

15
задан Jack Ryan 7 July 2009 в 12:39
поделиться

2 ответа

Не могли бы вы просто указать "v7b {0}" в поле "Формат номера сборки"?

0
ответ дан 1 December 2019 в 05:07
поделиться
Другие вопросы по тегам:

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