Procedure: Een basisgegevenscontract maken voor een klasse of structuur
In dit onderwerp worden de basisstappen beschreven voor het maken van een gegevenscontract met behulp van een klasse of structuur. Zie Gegevenscontracten gebruiken voor meer informatie over gegevenscontracten en hoe ze worden gebruikt.
Zie de zelfstudie Aan de slag voor een zelfstudie die de stappen doorloopt voor het maken van een eenvoudige WCF-service (Windows Communication Foundation) en -client. Zie Basic Data Contract voor een werkende voorbeeldtoepassing die bestaat uit een basisservice en client.
Een basisgegevenscontract maken voor een klasse of structuur
Declareer dat het type een gegevenscontract heeft door het DataContractAttribute kenmerk toe te passen op de klasse. Houd er rekening mee dat alle openbare typen, inclusief die zonder kenmerken, serialiseerbaar zijn. Hiermee DataContractSerializer wordt een gegevenscontract afgeleid als het DataContractAttribute kenmerk afwezig is. Zie Serializable Types voor meer informatie.
Definieer de leden (eigenschappen, velden of gebeurtenissen) die worden geserialiseerd door het DataMemberAttribute kenmerk toe te passen op elk lid. Deze leden worden gegevensleden genoemd. Standaard zijn alle openbare typen serialiseerbaar. Zie Serializable Types voor meer informatie.
Notitie
U kunt het DataMemberAttribute kenmerk toepassen op privévelden, waardoor de gegevens zichtbaar worden gemaakt voor anderen. Zorg ervoor dat het lid geen gevoelige gegevens bevat.
Opmerking
In het volgende voorbeeld ziet u hoe u een gegevenscontract voor het Person
type maakt door de DataContractAttribute en DataMemberAttribute kenmerken toe te passen op de klasse en de bijbehorende leden.
using System;
using System.Runtime.Serialization;
[DataContract]
public class Person
{
// This member is serialized.
[DataMember]
internal string FullName;
// This is serialized even though it is private.
[DataMember]
private int Age;
// This is not serialized because the DataMemberAttribute
// has not been applied.
private string MailingAddress;
// This is not serialized, but the property is.
private string telephoneNumberValue;
[DataMember]
public string TelephoneNumber
{
get { return telephoneNumberValue; }
set { telephoneNumberValue = value; }
}
}
<DataContract()> _
Public Class Person
' This member is serialized.
<DataMember()> _
Friend FullName As String
' This is serialized even though it is private.
<DataMember()> _
Private Age As Integer
' This is not serialized because the DataMemberAttribute
' has not been applied.
Private MailingAddress As String
' This is not serialized, but the property is.
Private telephoneNumberValue As String
<DataMember()> _
Public Property TelephoneNumber() As String
Get
Return telephoneNumberValue
End Get
Set
telephoneNumberValue = value
End Set
End Property
End Class