ArrayExtension Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Implements x:Array support for .NET Framework XAML Services

Namespace:   System.Windows.Markup
Assembly:  System.Xaml (in System.Xaml.dll)


public class ArrayExtension : MarkupExtension


Initializes a new instance of the ArrayExtension class. This creates an empty array.


Initializes a new instance of the ArrayExtension class based on the provided raw array.


Initializes a new instance of the ArrayExtension class and initializes the type of the array.


Gets the contents of the array. Settable in XAML through XAML collection syntax.


Gets or sets the type of array to be created when calling ProvideValue.


Appends the supplied object to the end of the array.


Adds a text node as a new array item.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns an array that is sized to the number of objects supplied in the Items values. (Overrides MarkupExtension.ProvideValue(IServiceProvider).)


Returns a string that represents the current object.(Inherited from Object.)

ArrayExtension is the class that implements the x:Array markup extension behavior, and the x:ArrayExtension information item from [MS-XAML]. x:Array supports a XAML language feature that allows adding arbitrary child elements within an array, through a particular markup extension enabled syntax. The markup extension syntax requires an explicit Type attribute on the markup extension usage, and a content syntax for specifying the Items. For more information and details on the syntax, see x:Array Markup Extension.

This class is a markup extension implementation. Markup extension classes exist mainly to provide infrastructure support for some aspect of a XAML processor implementation, and the members exposed by a markup extension class are not typically called from user code. This extension supports the x:Array Markup Extension usage from XAML for .NET Framework XAML Services implementation of XAML and its XAML readers and XAML writers.

In previous versions of the .NET Framework, this class existed in the WPF-specific assembly PresentationFramework. In .NET Framework 4, ArrayExtension is in the System.Xaml assembly. This makes the x:Array usage available to frameworks or technologies such as Windows Workflow Foundation that are built on .NET Framework XAML Services. For more information, see Types Migrated from WPF to System.Xaml.

The System.Xaml assembly uses XmlnsDefinitionAttribute to map types from theSystem.Windows.Markup CLR namespace in the assembly to the XAML namespace for the XAML language ( In typical XAML markup, you declare a prefix for in a root element mapping and use the prefix x.

.NET Framework
Available since 3.0

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

Return to top