Share via


Gewusst wie: Erstellen von mehrwertigen Eigenschaften

Letzte Änderung: Montag, 22. März 2010

Gilt für: SharePoint Server 2010

Eigenschaften unterstützen nun mehrere Werte. Es existieren zahlreiche Szenarien, in denen sich diese Verbesserung als nützlich erweisen kann, wie etwa beim Definieren von Eigenschaften, die normalerweise mehrere Werte enthalten, wie z. B. die Interessen und Fachgebiete eines Benutzers.

Der IsMultiValued-Parameter im Objektmodell gibt an, ob es sich bei der Eigenschaft um eine mehrwertige Eigenschaft handelt oder nicht. Wie der Eigenschaftendatentyp kann dieser Parameter nach dem Festlegen jedoch nicht mehr geändert werden.

Das Objektmodell gibt die mehreren Werte einer mehrwertigen Eigenschaft als ArrayList-Objekt zurück. Die Reihenfolge der Werte in der Auflistung entspricht der Aktualisierungsreihenfolge. Ein Beispiel hierzu finden Sie unter Gewusst wie: Festlegen von mehreren Werten auf eine mehrwertige Eigenschaft.

Mehrwertige Eigenschaften sind auch indizierbar. Derzeit werden die Klauseln Contains und Equals für mehrwertige Eigenschaften von der SharePoint-Unternehmenssuche in SharePoint Server 2010 unterstützt.

SharePoint Server 2010 ermöglicht es Ihnen, eine mehrwertige Eigenschaft an der Verbindungsquelle einer einzelwertigen Portaleigenschaft zuzuordnen. Beim Importieren von Eigenschaften versucht der Importvorgang, den ersten Wert von der Quelle abzurufen.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie mehrwertige Eigenschaften erstellen. Ersetzen Sie vor der Verwendung dieses Beispiels servername durch einen tatsächlichen Wert. Fügen Sie Ihrem Microsoft Visual Studio-Projekt zudem Verweise auf Folgendes hinzu:

  • Microsoft.Office.Server

  • Microsoft.Office.Server.UserProfiles

  • Microsoft.SharePoint

  • System.Web

Beispiel

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using System.Web;

namespace UserProfilesOMApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //Code example adds a new property called Published Papers.
            using (SPSite site = new SPSite("https://servername"))
            {
                SPServiceContext context = SPServiceContext.GetContext(site);
                UserProfileConfigManager upcm = new UserProfileConfigManager(context);

                try
                {
                    ProfilePropertyManager ppm = upcm.ProfilePropertyManager;

                    // create core property
                    CorePropertyManager cpm = ppm.GetCoreProperties();
                    CoreProperty cp = cpm.Create(false);
                    cp.Name = "Published Papers";
                    cp.DisplayName = "Published Papers";
                    cp.Type = PropertyDataType.StringMultiValue;
                    cp.Length = 100;
                    cp.IsMultivalued = true;
                    cpm.Add(cp);

                    // create profile type property
                    ProfileTypePropertyManager ptpm = ppm.GetProfileTypeProperties(ProfileType.User);
                    ProfileTypeProperty ptp = ptpm.Create(cp);
                    ptp.IsVisibleOnEditor = true;
                    ptp.IsVisibleOnViewer = true;
                    ptpm.Add(ptp);

                    // create profile subtype property
                    ProfileSubtypeManager psm = ProfileSubtypeManager.Get(context);
                    ProfileSubtype ps = psm.GetProfileSubtype(ProfileSubtypeManager.GetDefaultProfileName(ProfileType.User));
                    ProfileSubtypePropertyManager pspm = ps.Properties;
                    ProfileSubtypeProperty psp = pspm.Create(ptp);

                    psp.IsUserEditable = true;
                    psp.PrivacyPolicy = PrivacyPolicy.OptIn;
                    psp.DefaultPrivacy = Privacy.Organization;

                    pspm.Add(psp);
                }
                catch (DuplicateEntryException e)
                {
                    Console.WriteLine(e.Message);
                    Console.Read();
                }
                catch (System.Exception e2)
                {
                    Console.WriteLine(e2.Message);
                    Console.Read();
                }
            }
        }
    }
}

Siehe auch

Aufgaben

Gewusst wie: Festlegen von mehreren Werten auf eine mehrwertige Eigenschaft

Gewusst wie: Ändern von Profileigenschaften

Gewusst wie: Erstellen von mehrwertigen Taxonomieeigenschaften

Gewusst wie: Festlegen von Datenschutzrichtlinien für Benutzerprofileigenschaften