Gibt es eine Möglichkeit, einen eindeutigen internen Namen in einer SPFieldCollection ohne Try Catch zu finden?

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

  •  28-09-2020
  •  | 
  •  

Frage

Methode SPFieldCollection.GetFieldByInternalName gibt einen Fehler aus, wenn das Feld mit dem angegebenen internen Namen nicht gefunden werden kann.

Gibt es eine Möglichkeit festzustellen, ob ein Feld mit einem internen Namen vorhanden ist, ohne einen Fehler auszulösen?

Ich habe das erstellt, aber ich mag es nicht, Fehler für jedes Feld zu werfen, mit dem ich mich befasse.

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;
}
War es hilfreich?

Lösung 2

Anscheinend gibt es keine andere Möglichkeit festzustellen, ob ein Feld mit einem internen Namen existiert, ohne einen Fehler auszulösen.

Andere Tipps

Verwenden Sie die TryGetFieldByStaticName-Methode für die SPFieldCollection: http://msdn.microsoft.com/en-us/library/office/microsoft.sharepoint.spfieldcollection.trygetfieldbystaticname(v=office.15).aspx.

Gibt null zurück, wenn nichts gefunden wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top