Partilhar via


PropertyDataTypeCollection Class

Represents a collection of PropertyDataType objects.

Inheritance Hierarchy

System.Object
  Microsoft.Office.Server.UserProfiles.PropertyDataTypeCollection

Namespace:  Microsoft.Office.Server.UserProfiles
Assembly:  Microsoft.Office.Server.UserProfiles (in Microsoft.Office.Server.UserProfiles.dll)

Syntax

'Declaration
<SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel := True)> _
Public NotInheritable Class PropertyDataTypeCollection _
    Implements ICollection, IEnumerable
'Usage
Dim instance As PropertyDataTypeCollection
[SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel = true)]
public sealed class PropertyDataTypeCollection : ICollection, 
    IEnumerable

Remarks

The PropertyDataTypeCollection object is within the site context and stores supported property data types in the user profile database for a specific site.

Examples

The following code example shows the use of the PropertyDataTypeCollection class.

static public void PropertyTypeAndMappingSample()
{
 
  using (SPSite site = new SPSite("site url"))
  {
    SPServiceContext context = SPServiceContext.GetContext(site);
//Initialize user profile config manager object.
    UserProfileConfigManager upcm = new UserProfileConfigManager(context);
    ConnectionManager cm = upcm.ConnectionManager;
 
//Sample to get a property type.
    PropertyDataTypeCollection pdtc = upcm.GetPropertyDataTypes();
    PropertyDataType ptype = null;
 
    foreach (PropertyDataType datatype in pdtc)
    {
      if (datatype.Name.Equals("string"))
      {
        ptype = datatype;
        break;
      }
    }
 
//Sample to create a new custom property.
    ProfilePropertyManager ppm = upcm.ProfilePropertyManager;
    CorePropertyManager cpm = ppm.GetCoreProperties();
    ProfileTypePropertyManager ptpm = ppm.GetProfileTypeProperties(ProfileType.User);
    ProfileSubtypeManager psm = ProfileSubtypeManager.Get(context);
    ProfileSubtype ps = psm.GetProfileSubtype(ProfileSubtypeManager.GetDefaultProfileName(ProfileType.User));
    ProfileSubtypePropertyManager pspm = ps.Properties;
 
    CoreProperty coreProp = cpm.Create(false);
    coreProp.Name = "division";
    coreProp.DisplayName = "my custom division";
    coreProp.Type = ptype.Name;
    coreProp.Length = ptype.MaxCharCount;
    coreProp.Commit();
    ProfileTypeProperty profileTypeProp = ptpm.Create(coreProp);
    profileTypeProp.IsVisibleOnEditor = true;
    profileTypeProp.IsVisibleOnViewer = true;
    profileTypeProp.Commit();
    ProfileSubtypeProperty profileSubTypeProp = pspm.Create(profileTypeProp);
    profileSubTypeProp.DefaultPrivacy = Privacy.Private;
    profileSubTypeProp.IsUserEditable = true;
    profileSubTypeProp.Commit();
    pspm.SetDisplayOrderByPropertyName(profileSubTypeProp.Name, 1);
    pspm.CommitDisplayOrder();
 
//Edit property sample.
    CoreProperty ptitle = cpm.GetPropertyByName(PropertyConstants.Title);
// Or get property by URI.
    ptitle = cpm.GetPropertyByURI(Property.URI_Title);
    ptitle.DisplayName = "Designation";
    ptitle.Commit();
//Property map sample.
    string connectionName = "Test Connection";
    Connection connection = cm[connectionName];
    PropertyMapCollection pmc = connection.PropertyMapping;
    pmc.AddNewMapping(ProfileType.User, profileSubTypeProp.Name, "division");
 
//Remove property sample.
    cpm.RemovePropertyByName("division");
    ptpm.RemovePropertyByName("division");
    pspm.RemovePropertyByName("division");
  }
}

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

PropertyDataTypeCollection Members

Microsoft.Office.Server.UserProfiles Namespace