Como a: excluir uma propriedade gerenciada
O objeto Schema esquema no modelo objeto administração Pesquisar da empresa osssearchshort fornece acessar para o gerenciado propriedades configuradas para o serviço pesquisa de um Shared Services Provider (SSP). Para obter mais informações sobre o objeto Schema esquema, consulte Gerenciamento de metadados.
O seguinte procedimento mostra como a programaticamente excluir um gerenciado propriedade usando o modelo objeto administração Pesquisar da empresa osssearchshort em um aplicativo console.
Para excluir um gerenciado propriedade de um aplicativo console
No seu aplicativo, definir referências para o seguinte DLLs:
Microsoft.SharePoint.dll
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
No arquivo classe do seu aplicativo de console, adicionar o seguinte using instruções perto de parte superior da codificar Using com as outras diretivas de espaço para nome.
using Microsoft.SharePoint; using Microsoft.Office.Server.Search.Administration;
Crie uma função para gravar informações de uso para o janela do console.
static void Usage() { Console.WriteLine("Delete Managed Properties Sample"); Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe PropertyName"); }
No Main() Main() função do aplicativo de console, adicionar codificar a verificar o número de itens de parâmetro args[] args []; Ele deve igual a 1. Se ele não, em seguida, chamar o Usage() Usage() função definido na etapa 3.
if (args.Length != 1) { Usage(); return; }
Recuperar o valor especificado no parâmetro
args[]
args [], ser usado para especificar o nome do gerenciado propriedade para excluir.string strName = args[0];
Para recuperar o objeto Schema esquema para contexto pesquisa do SSP, adicionar o seguinte codificar. Para obter mais informações sobre maneiras para recuperar o contexto pesquisa, consulte Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa.
/* Replace <SiteName> with the name of a site using the SSP */ string strURL = "http://<SiteName>"; Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
Recuperar a coleção de gerenciado propriedades usando a seguinte codificar.
ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
Determinar se a coleção de gerenciado propriedades inclui a propriedade especificada.
if (properties.Contains(strName)) { Console.WriteLine(strName + " property does not exist. Delete failed."); return; }
Se o método contém Containstrue, executar um loop por meio de gerenciado retorna propriedades e para cada um, verificar para ver se o Name propriedade Nome coincide com o valor de strName.
foreach (ManagedProperty property in properties) { if (property.Name == strName) {
Em seguida, confirme que a propriedade pode ser excluída por verificando o valor da propriedade de DeleteDisallowed.
if (property.DeleteDisallowed) { Console.WriteLine("DeleteDisallowed enabled for " + strName + ". Delete failed."); return; }
Se o DeleteDisallowed DeleteDisallowed propriedade retorna false, chamar o DeleteAllMappings DeleteAllMappings método e, em seguida, chamar o Delete Excluir método para a propriedade.
property.DeleteAllMappings(); property.Delete(); Console.WriteLine(strName + " deleted."); return; } }
Exemplo
Este é o completo codificar para o exemplo classe aplicativo console.
Pré-requisitos
- Certifique-se que um provedor de serviços compartilhados já é criado.
Referências do projeto
Adicione o seguinte referências do projeto no seu projeto código do aplicativo console antes execução neste exemplo:
Microsoft.SharePoint
Microsoft.Office.Server
Microsoft.Office.Server.Search
using System;
using System.Collections;
using System.Text;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;
namespace DeleteManagedPropertiesSample
{
class Program
{
static void Main(string[] args)
{
try
{
if (args.Length != 1)
{
Usage();
return;
}
string strName = args[0];
/*
Replace <SiteName> with the name of a site using the SSP
*/
string strURL = "http://<SiteName>";
Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
if (!properties.Contains(strName))
{
Console.WriteLine(strName + " property does not exist. Delete failed.");
return;
}
foreach (ManagedProperty property in properties)
{
if (property.Name == strName)
{
if (property.DeleteDisallowed)
{
Console.WriteLine("DeleteDisallowed enabled for " + strName + ". Delete failed.");
return;
}
property.DeleteAllMappings();
property.Delete();
Console.WriteLine(strName + " deleted.");
return;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
private static void Usage()
{
Console.WriteLine("Delete Managed Properties Sample");
Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe PropertyName");
}
}
}
Consulte também
Outros recursos
Gerenciamento de metadados
Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa
Como a: recuperar as propriedades gerenciadas para um provedor serviços compartilhados
Como a: criar uma propriedade gerenciada