DataMemberAttribute Class
When applied to the member of a type, specifies that the member is part of a data contract and is serializable by the DataContractSerializer.
Assembly: System.Runtime.Serialization (in System.Runtime.Serialization.dll)
| Name | Description | |
|---|---|---|
![]() | DataMemberAttribute() | Initializes a new instance of the DataMemberAttribute class. |
| Name | Description | |
|---|---|---|
![]() | EmitDefaultValue | Gets or sets a value that specifies whether to serialize the default value for a field or property being serialized. |
![]() | IsNameSetExplicitly | Gets whether Name has been explicitly set. |
![]() | IsRequired | Gets or sets a value that instructs the serialization engine that the member must be present when reading or deserializing. |
![]() | Name | Gets or sets a data member name. |
![]() | Order | Gets or sets the order of serialization and deserialization of a member. |
![]() | TypeId |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.) |
![]() | GetHashCode() | Returns the hash code for this instance.(Inherited from Attribute.) |
![]() | GetType() | |
![]() | IsDefaultAttribute() | When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.) |
![]() | Match(Object) | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfoCount(UInt32) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.) |
![]() ![]() | _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object.(Inherited from Attribute.) |
Apply the DataMemberAttribute attribute in conjunction with the DataContractAttribute to identify members of a type that are part of a data contract. One of the serializers that can serialize data contracts is the DataContractSerializer.
The data contract model is an "opt-in" model. Applying the DataMemberAttribute to a field or property explicitly specifies that the member value will be serialized. In contrast, the BinaryFormatter serializes public and private fields of a type, and the XmlSerializer serializes only public fields and properties of a type.
Caution |
|---|
You can apply the DataMemberAttribute to private fields or properties. Be aware that the data returned by the member (even if it's private) will be serialized and deserialized, and thus can be viewed or intercepted by a malicious user or process. |
By default, the CLR member name is used as the name of the data member. By setting the Name property, you can customize the name of the data member. This can be used to provide a name that may not be allowed as a CLR member name. When mapping to XML using the DataContractSerializer, this name is used as the name of the schema element in a type.
Note |
|---|
Properties to which the DataMemberAttribute attribute has been applied must have both get and set fields; they cannot be get-only or set-only. |
For more information about data contracts and data members, see Using Data Contracts. For more information about member names, see Data Member Default Values.
The following example shows a type to which the DataContractAttribute and DataMemberAttribute attributes have been applied. The Name property on the DataMemberAttribute is set to "ID".
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





