Warum sollte ich fieldLinks beim Hinzufügen von Feldern zu einem Contenttyp verwenden?

8

Wenn ich nach Dokumentation über das Erstellen von contenttypes mit Code (C #) suche, finde ich immer Beispiele, die einen SPFieldLink verwenden, um zu einem vorhandenen Feld der Site zu verknüpfen und dieses über

hinzuzufügen %Vor%

Aber es gibt auch eine Methode, um Felder direkt hinzuzufügen. Gibt es einen guten Grund, warum ich Felder nicht einfach mit

hinzufügen sollte %Vor%

?!?

Danke im Voraus

    
Ole Albers 26.01.2012, 13:44
quelle

2 Antworten

5

Es scheint einen einfachen Grund zu geben, wie ich es jetzt herausgefunden habe: Es funktioniert einfach nicht bei ContentTypes. Beim Versuch, ein Feld direkt hinzuzufügen, sendet SP2010 eine Ausnahme:

  

Diese Funktionalität ist für Feldauflistungen, die keiner Liste zugeordnet sind, nicht verfügbar.

Ich habe das absolut nicht erwartet (auch nicht die spanische Inquisition), aber es scheint einfach nicht möglich zu sein.

    
Ole Albers 26.01.2012, 16:09
quelle
5

Es kann hilfreich sein, das XML nach einer Liste zu suchen.

Hier ist das XML für den Ankündigungsinhaltstyp:

%Vor%

Hier ist das XML für die Ankündigungsliste:

%Vor%

Listen haben Felder. Inhaltstypen haben FieldRefs.

Ich bin mir nicht sicher, ob das genau richtig ist, aber ich beschreibe es immer als den Unterschied zwischen Klassen und Interfaces oder abstrakten Klassen. Ein Inhaltstyp ist die Definition für eine Liste, enthält aber wie eine Schnittstelle keine Daten oder Funktionen. Da Felder Daten und Funktionen enthalten, haben Inhaltstypen (die von einer Liste getrennt sind) keine Felder, sie haben FeldRefs. YMMV - aber das hilft mir immer, sie richtig zu halten.

    
Rich Bennema 27.01.2012 21:27
quelle