Existe uma maneira de encontrar um nome interno exclusivo em um SPFieldCollection sem tentar capturar?
-
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;
}
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