Можно ли добавить TaskItem (или TaskList) на страницу веб-сайта (домашнюю страницу веб-объектов)?
Я хотел бы предоставить некоторый контекстный доступ к своему надстройке, и я не могу найти хорошую точку интеграции.
Большое спасибо CarlosAg на форумах IIS.net за основу этого ответа.
Создайте класс, который подклассов ProtocolProvider и вернет ему TaskList путем переопределения GetSiteTaskList и GetSitesTaskList .
В вашем методе Module.Initialize получите IExtensibilityManager от serviceProvider
Зарегистрируйте экземпляр вашего ProtocolProvider в IExtensibilityManager, вызвав RegisterExtension .
Обновление
Оказывается, ProtocolProvider может предоставлять TaskList только для представления «Сайты», но может предоставлять другой TaskList в зависимости от того, какой сайт выбран (если есть).
Чтобы предоставить пользовательский TaskList для домашней страницы сайта (т. Е. Со списком функций), вам необходимо реализовать IHomepageTaskListProvider и зарегистрировать его в IExtensibilityManager , упомянутом выше.
В реализации IHomepageTaskListProvider.GetTaskList вы можете узнать, является ли текущая «домашняя страница» сайтом или глобальным, получив Connection от IServiceProvider и проверка свойства ConfigurationPath.PathType (это перечисление ConfigurationPathType )