Что касается универсального типа универсального типа в документации XML C#?

Вы можете использовать Anglar Routing guard с интерфейсом CanActivate .

@Injectable()
export class CheckAuthenticationGuard implements CanActivate {
  constructor(/* Inject whatever you want here */) {}

  public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable|Promise|boolean|UrlTree {
    // Make request and return if you are authenticated or not.
  }
}

@NgModule({
  imports: [
    RouterModule.forRoot([
      {
        path: 'home/',
        component: HomeComponent,
        canActivate: [CheckAuthenticationGuard]
      },
      {
        path: 'otherRoute',
        component: OtherComponent,
        canActivate: [CheckAuthenticationGuard]
      },
      ...
    ])
  ],
  providers: [
    ...,
    CheckAuthenticationGuard 
  ]
})
class AppModule {}

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

41
задан Default 15 January 2013 в 14:12
поделиться

3 ответа

Похоже, что нет способа сослаться на универсальный шаблон в XML-документации, потому что на самом деле нет способа сослаться на универсальный шаблон любого конкретного типа.

Лассе В. Карлсен ответ заставил меня щелкнуть:

Если вы напишете , компилятор просто использует "Int32" в качестве имени параметра типа , а не аргумент типа. Запись тоже подойдет. Это имеет смысл, потому что в MSDN нет специальной страницы для "IEnumerable of int", на которую могла бы ссылаться ваша документация.

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

<summary>
Returns an <see cref="IEnumerable{T}" /> of <see cref="KeyValuePair{T,U}" /> 
of <see cref="String" />, <see cref="Int32" />.
</summary>

Надеюсь, вы как текст.

42
ответ дан 27 November 2019 в 00:48
поделиться
// Use "&lt;" instead of "<" symbol and "&gt;" instead of ">" symbol.

// Sample:

<see cref="Expression&lt;Func&lt;T, bool&gt;&gt;"/>
3
ответ дан Konstantin Tarkus 27 November 2019 в 00:48
поделиться

На что именно вы хотите, чтобы он ссылался?

В документации нет такого понятия, как выражение > , поэтому, очевидно, это ссылка это не сработает.

Вы можете сослаться на Выражение , потому что оно существует.

Что касается того, работает или нет, ни одно из следующих действий не работает в Visual Studio 2008 / .NET 3.5 для меня:

/// <see cref="Expression&lt;Func&lt;T&gt;&gt;"/>.
/// <see cref="Expression{Func{T}}"/>.

Но это работает:

/// <see cref="Expression{T}"/>.

, поэтому очевидно, что параметр универсального типа не должен совпадать с параметром в объявлении.

12
ответ дан 27 November 2019 в 00:48
поделиться
Другие вопросы по тегам:

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