Class PropertyDataCollection
Collection of PropertyData objects.
Inheritance
Implements
Namespace: EPiServer.Core
Assembly: EPiServer.dll
Version: 12.0.3Syntax
public class PropertyDataCollection : Object, ICollection<PropertyData>, IEnumerable<PropertyData>, IEnumerable, IReadOnly<PropertyDataCollection>, IReadOnly
Remarks
Notes to inheritors If you override the indexers of this class, make sure that the Count property and Exists method match your implementation since they are used to indicate the boundaries of the collection.
Constructors
PropertyDataCollection()
Initializes a new instance of the PropertyDataCollection class.
Declaration
public PropertyDataCollection()
PropertyDataCollection(Int32)
Initializes a new instance of the PropertyDataCollection class.
Declaration
public PropertyDataCollection(int capacity)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | capacity | The initial capacity of the collection. |
Properties
Count
Gets the number of elements contained in the PropertyDataCollection.
Declaration
public virtual int Count { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
GetHandler
Gets or sets the handler for this property
Declaration
public static GetPropertyDelegate GetHandler { get; set; }
Property Value
Type | Description |
---|---|
GetPropertyDelegate |
IsDataInitialized
Gets or sets a value indicating whether InitializeData has been called for this instance.
Declaration
public bool IsDataInitialized { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
|
IsReadOnly
Gets or sets a value indicating whether the System.Collections.Specialized.NameObjectCollectionBase instance is read-only.
Declaration
public virtual bool IsReadOnly { get; protected set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Item[Int32]
Gets or sets a property by index.
Declaration
public virtual PropertyData this[int index] { get; set; }
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index |
Property Value
Type | Description |
---|---|
PropertyData |
Remarks
When overridden in a derived class, make sure that the Count implementation is syncronized with the override of this method.
Item[String]
Gets or sets a property by name.
Declaration
public virtual PropertyData this[string name] { get; set; }
Parameters
Type | Name | Description |
---|---|---|
System.String | name |
Property Value
Type | Description |
---|---|
PropertyData |
Remarks
If property object does not have its Name specified it will be set when added to the collection. You cannot add a property with a different name than the collection name. When overridden in a derived class, make sure that the Exists implementation is syncronized with the override of this method.
Note! If IsReadOnly is true the indexer getter will use the GetHandler delegate to fetch data. It may return objects not present in the property collection (typically dynamic properties and fetch-data-from).
Keys
Gets a read-only collection of all the property names that is currently in the PropertyDataCollection.
Declaration
public virtual ICollection<string> Keys { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.ICollection<System.String> |
LanguageBranch
Gets or sets the language of the IContent instance that owns the collection
Declaration
public virtual string LanguageBranch { get; set; }
Property Value
Type | Description |
---|---|
System.String | The owner link. |
OwnerLink
Gets or sets the link to the IContent instance that owns the collection
Declaration
public virtual ContentReference OwnerLink { get; set; }
Property Value
Type | Description |
---|---|
ContentReference | The owner link. |
Methods
Add(PropertyData)
Add new property to the collection.
Declaration
public virtual void Add(PropertyData value)
Parameters
Type | Name | Description |
---|---|---|
PropertyData | value | The PropertyData to add |
Remarks
Uses the Name property from ProperyData as a key when adding PropertyData to the collection. Will fail if the key already exists.
Add(String, PropertyData)
Adds a new property.
Declaration
public virtual void Add(string name, PropertyData value)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | Name of property |
PropertyData | value | PropertyData to add |
Remarks
Will fail if the key already exists.
Clear()
Removes all items from the PropertyDataCollection.
Declaration
public virtual void Clear()
Contains(String)
Determines whether the PropertyDataCollection contains a property with the specified name.
Declaration
public virtual bool Contains(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property to check for. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Remarks
This method will only check properties actually stored in the collection instance.
Copy()
Copies this instance.
Declaration
public virtual PropertyDataCollection Copy()
Returns
Type | Description |
---|---|
PropertyDataCollection | A PropertyDataCollection. |
Remarks
This method returns a deep copy of the collection.
CreateWritableClone()
Create a copy of the current object instance that is writable.
Declaration
public virtual PropertyDataCollection CreateWritableClone()
Returns
Type | Description |
---|---|
PropertyDataCollection | A new copy of the object. |
Remarks
The cloning is a deep-copy.
Get(String)
Gets the property specified by name.
Declaration
public virtual PropertyData Get(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property. |
Returns
Type | Description |
---|---|
PropertyData | The corresponding PropertyData object. |
Remarks
This method will only return data actually stored in the collection instance. The default indexer may return data not in the collection (typically dynamic properties and fetch-data-from).
GetEnumerator()
Returns an enumerator that iterates through the collection of PropertyData objects.
Declaration
public virtual IEnumerator<PropertyData> GetEnumerator()
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerator<PropertyData> | A System.Collections.Generic.IEnumerator<EPiServer.Core.PropertyData> that can be used to iterate through the collection. |
GetPropertyValue<TPropertyValue>(String)
Gets the value of a property by the specified name and type.
Declaration
public TPropertyValue GetPropertyValue<TPropertyValue>(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property to retrieve. |
Returns
Type | Description |
---|---|
TPropertyValue | The value of the specified property. |
Type Parameters
Name | Description |
---|---|
TPropertyValue | The value type of the named property. |
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | Thrown when a property with the specified name or type could not be found. |
InitializeData()
Used by classes derived from PropertyData to initialize themselves with additional information.
Declaration
public virtual void InitializeData()
MakeReadOnly()
Change the object instance into a read-only object.
Declaration
public virtual void MakeReadOnly()
Remarks
After calling this method, any attempt to change the object instance or any contained object will generate a System.NotSupportedException. I e the semantics is "deep read-only".
Note! After setting an object to read-only it is not possible to revert back to read-write mode. You will have to call the CreateWritableClone method to get a copy that can be modified.
Merge(PropertyDataCollection, PropertyDataCollection)
Merge two collection and keeping the correct fieldorder of the properties
Declaration
public static PropertyDataCollection Merge(PropertyDataCollection prop1, PropertyDataCollection prop2)
Parameters
Type | Name | Description |
---|---|---|
PropertyDataCollection | prop1 | First collection |
PropertyDataCollection | prop2 | Second collection |
Returns
Type | Description |
---|---|
PropertyDataCollection | A new PropertyDataCollection with all the properties from both collections. |
Remove(String)
Removes the item with the specified name from the PropertyDataCollection.
Declaration
public virtual bool Remove(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property to remove. |
Returns
Type | Description |
---|---|
System.Boolean |
|
RemoveAt(Int32)
Removes the property at the specified location from the PropertyDataCollection.
Declaration
public virtual void RemoveAt(int index)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | The index of the property to remove. |
Set(String, PropertyData)
Sets the property with the specified name.
Declaration
public virtual void Set(string name, PropertyData value)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property. |
PropertyData | value | The PropertyData object to set. |
ShallowCopy()
Copies this instance.
Declaration
public virtual PropertyDataCollection ShallowCopy()
Returns
Type | Description |
---|---|
PropertyDataCollection | A PropertyDataCollection. |
Remarks
This method returns a shallow copy of the collection. I e the PropertyDataCollection returned is a new object, but the PropertyData objects in the collection are the same in the old and new PropertyDataCollection.
ThrowIfReadOnly()
Throws an System.NotSupportedException if the collection is set to read only.
Declaration
protected void ThrowIfReadOnly()
TryGetPropertyValue<TPropertyValue>(String, out TPropertyValue)
Attempts to get the value of a property by the specified name and type.
Declaration
public virtual bool TryGetPropertyValue<TPropertyValue>(string name, out TPropertyValue value)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the property to retrieve. |
TPropertyValue | value | The value of the property if the retrieval succeeded. If the retrieval failed it will be set to the default value of the specified type. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Type Parameters
Name | Description |
---|---|
TPropertyValue | The value type of the named property. |
Remarks
The property with the specified name
must exist, have a value type that matches or inherits TPropertyValue
and have a value set for the attempt to be considered successful.
Explicit Interface Implementations
IReadOnly.CreateWritableClone()
Declaration
object IReadOnly.CreateWritableClone()
Returns
Type | Description |
---|---|
System.Object |