Identificando programaticamente o recurso para ativação
-
29-09-2020 - |
Pergunta
Eu tenho um requisito em que uma ação personalizada é adicionada apenas ao site raiz do conjunto de sites.Portanto, planejando adicionar dois recursos, um com escopo Site
e outro com escopo Web
.
No receptor de eventos de um recurso de escopo Site
, estou ativando o recurso de escopo Web
.
Para isso eu posso usar
web.Features.Add(webFeatureId);
Como posso encontrar o ID de recurso de recursos de nível da Web programaticamente?
Solução
Nós vamos.Realmente depende de qual recurso você precisa ativar.
O id de um recurso não muda durante sua vida.Isso significa que, se você puder descobrir a ID, terá certeza de que ela permanecerá a mesma, independentemente da instância específica do farm do SharePoint.Dito isso, você pode "codificar" sua ID em uma classe de suporte, assim como o SharePoint faz com a ID de campos na classe SPBuiltInFields.
Se, por algum motivo, você não puder saber o ID do recurso de antemão, precisará de outra maneira de identificar o recurso - por exemplo, o nome de exibição.Com essa informação, você pode usar a propriedade Definições de recursos do objeto SPWeb para navegar pelos recursos de nível 'Web' instalados, pesquisar o que você precisa e adicioná-lo à coleção Recursos para ativá-lo conforme necessário.