Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Represents the definition for the data types of a profile property.
Inheritance Hierarchy
System.Object
Microsoft.Office.Server.UserProfiles.PropertyDataType
Namespace: Microsoft.Office.Server.UserProfiles
Assembly: Microsoft.Office.Server (in Microsoft.Office.Server.dll)
Syntax
'Declaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public NotInheritable Class PropertyDataType
'Usage
Dim instance As PropertyDataType
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public sealed class PropertyDataType
Examples
The following code example shows how to use the PropertyDataType class.
[Visual Basic]
' This sample uses the following classes:
' UserProfileConfigManager,
' PropertyDataTypeCollection, PropertyDataType,
' PropertyCollection, Property, PropertyConstants,
' PropertyMapCollection, PropertyMap
Public Sub PropertyTypeAndMappingSample()
' Get portal site context from topology.
Dim strUrl As String = "http://SampleName"
Dim tm As New TopologyManager()
Dim ps As PortalSite = tm.PortalSites(New Uri(strUrl))
Dim pc As PortalContext = PortalApplication.GetContext(ps)
' Initialize user profile config manager object.
Dim upcm As New UserProfileConfigManager(pc)
' The sample gets a property of type URL.
Dim pdtc As PropertyDataTypeCollection = _
upcm.GetPropertyDataTypes()
Dim ptype As PropertyDataType = Nothing
Dim enumType As IEnumerator = pdtc.GetEnumerator()
While enumType.MoveNext()
ptype = CType(enumType.Current, PropertyDataType)
If ptype.Name.Equals("string") Then
Exit While
End If
End While
' The sample creates a new custom property of type URL.
Dim pcol As PropertyCollection = upcm.GetProperties()
Dim prop As [Property] = pcol.Create(False)
prop.Name = "division"
prop.DisplayName = "my custom division"
prop.Type = ptype.Name
prop.Length = ptype.MaxCharCount
prop.IsPrivate = False
prop.IsUserEditable = True
prop.IsVisibleOnEditor = True
prop.IsVisibleOnViewer = True
prop.IsAlias = False
pcol.Add(prop)
pcol.SetDisplayOrderByPropertyName(prop.Name, 1)
pcol.CommitDisplayOrder()
' Edit the property sample,
Dim ptitle As [Property] = _
pcol.GetPropertyByName(PropertyConstants.Title)
' or get property by URI.
ptitle = pcol.GetPropertyByURI([Property].URI_Title)
ptitle.DisplayName = "Designation"
ptitle.Commit()
' A property map sample.
Dim ds As DataSource = upcm.GetDataSource()
Dim pmc As PropertyMapCollection = ds.PropertyMapping
pmc.Add(prop.Name, "division")
' Get arraylist of invalid mappings.
Dim invmap As ArrayList = pmc.VerifyMapping(False)
' Remove current mapping if not valid.
Dim pm As PropertyMap
For Each pm In invmap
If pm.PropName = prop.Name Then
pmc.Remove(pm.PropName)
End If
Next pm
' Remove the property sample.
pcol.RemovePropertyByName("division")
End Sub 'PropertyTypeAndMappingSample
// This sample uses the following classes:
// UserProfileConfigManager,
// PropertyDataTypeCollection, PropertyDataType,
// PropertyCollection, Property, PropertyConstants
// PropertyMapCollection, PropertyMap
public void PropertyTypeAndMappingSample()
{
// Get portal site context from topology.
string strUrl = "http://SampleName";
TopologyManager tm = new TopologyManager();
PortalSite ps = tm.PortalSites[new Uri(strUrl)];
PortalContext pc = PortalApplication.GetContext(ps);
// Iinitialize a user profile config manager object.
UserProfileConfigManager upcm = new
UserProfileConfigManager(pc);
// The sample gets a property of type URL.
PropertyDataTypeCollection pdtc = upcm.GetPropertyDataTypes();
PropertyDataType ptype = null;
IEnumerator enumType = pdtc.GetEnumerator();
while (enumType.MoveNext())
{
ptype = (PropertyDataType)enumType.Current;
if (ptype.Name.Equals("string")) break;
}
// The sample creates a new custom property of type URL.
PropertyCollection pcol = upcm.GetProperties();
Property prop = pcol.Create(false);
prop.Name = "division";
prop.DisplayName = "my custom division";
prop.Type = ptype.Name;
prop.Length = ptype.MaxCharCount;
prop.IsPrivate = false;
prop.IsUserEditable = true;
prop.IsVisibleOnEditor = true;
prop.IsVisibleOnViewer = true;
prop.IsAlias = false;
pcol.Add(prop);
pcol.SetDisplayOrderByPropertyName(prop.Name, 1);
pcol.CommitDisplayOrder();
// Edit the property sample,
Property ptitle =
pcol.GetPropertyByName(PropertyConstants.Title);
// or get property by URI.
ptitle = pcol.GetPropertyByURI(Property.URI_Title);
ptitle.DisplayName = "Designation";
ptitle.Commit();
// A property map sample.
DataSource ds = upcm.GetDataSource();
PropertyMapCollection pmc = ds.PropertyMapping;
pmc.Add(prop.Name, "division");
// Get arraylist of invalid mappings.
ArrayList invmap = pmc.VerifyMapping(false);
// Remove the current mapping if not valid.
foreach(PropertyMap pm in invmap)
{
if (pm.PropName == prop.Name)
{
pmc.Remove(pm.PropName);
}
}
// Remove the property sample.
pcol.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.