Почему ASP.NET Core не заставляет тип запуска реализовать интерфейс [закрыто]

В Android существует способ фактического изменения данных в Arraylist объектов через адаптер. В моем случае я не мог использовать LayoutManager для изменения результатов в порядке убывания, так как я использовал горизонтальный Recyclerview для отображения данных. Установка следующих параметров в recyclerview испортила мой опыт работы с интерфейсом:

llManager.setReverseLayout(true);
llManager.setStackFromEnd(true);

Единственный рабочий путь, который я нашел вокруг этого, был через метод BindViewHolder адаптера RecyclerView:

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
    final SuperPost superPost = superList.get(getItemCount() - position - 1);
}

Надеюсь, этот ответ поможет всем разработчикам, которые борются с этой проблемой в Firebase.

0
задан Tao Gómez Gil 16 January 2019 в 14:39
поделиться

2 ответа

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

Например, вы можете добавить этот метод рядом с обычным методом ConfigureServices, и он будет вызываться только при работе в промежуточной среде:

public void ConfigureStagingServices(IServiceCollection services)
{
    // ...
}

Те же соглашения работают для Configure(IApplicationBuilder app). См. документацию для дальнейшего использования.

0
ответ дан Henk Mollema 16 January 2019 в 14:39
поделиться

Одна из возможностей связана с внедрением зависимости. Скажем, был интерфейс, он мог бы выглядеть примерно так:

public interface IStartup
{
    void ConfigureServices(IServiceCollection services);
    void Configure(IApplicationBuilder app);
}

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //etc...
}

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

Кроме того, ConfigureServices на самом деле не является обязательным.

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

Бонус: вам даже не нужно иметь класс запуска, вся работа может быть выполнена при создании веб-хостинга путем вызова ConfigureServices и ] Configure методы.

0
ответ дан DavidG 16 January 2019 в 14:39
поделиться
Другие вопросы по тегам:

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