Existe uma maneira de encontrar um nome interno exclusivo em um SPFieldCollection sem tentar capturar?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/100674

  •  28-09-2020
  •  | 
  •  

Pergunta

O método SPFieldCollection.GetFieldByInternalName gera um erro se não conseguir encontrar o campo com o nome interno fornecido.

Existe uma maneira de determinar se existe um campo com um nome interno sem gerar um erro?

Eu criei isso, mas não gosto de lançar erros em todos os campos com os quais estou lidando.

public string UniqueInternalName(string initialInternalName, SPFieldCollection fieldCollection)
{
    string uniqueInternalName = initialInternalName;
    int? internalNameCount = null;

    try
    {
        if (fieldCollection.GetFieldByInternalName(initialInternalName) != null)                
            internalNameCount = 0;

        while (fieldCollection.GetFieldByInternalName(uniqueInternalName) != null)
            uniqueInternalName = initialInternalName + internalNameCount++;
    }
    catch { }

    return uniqueInternalName;
}
Foi útil?

Solução 2

Aparentemente não há outra maneira de determinar se existe um campo com um nome interno sem gerar um erro.

Outras dicas

Use o método TryGetFieldByStaticName no SPFieldCollection: http://msdn.microsoft.com/en-us/library/office/microsoft.sharepoint.spfieldcollection.trygetfieldbystaticname(v=office.15).aspx.

Retorna nulo se nada for encontrado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top