Data Contracts
Use the
DataMemberAttributeon properties or read-only public members only.Avoid explicit XML serialization on your own types.
When using the
Orderproperty, assign the same value to all members coming from the same level in the class hierarchy.Support
IExtensibleDataObjecton your data contracts.Avoid setting
IgnoreExtensionDataObjecton theServiceBehaviorandCallbackBehaviorattributes totrue. Keep the default offalse.Do not mark delegates and events as data members.
Do not pass .NET-specific types, such as
Type, as operation parameters.Do not accept or return ADO.NET
DataSetandDataTable(or their type-safe subclasses) from operations. Return a natural representation such as an array.Suppress the generation of a generic type parameter hash code and provide a legible type name instead.
Avoid the
/ctswitch of SvcUtil or any other way of sharing an assembly type across the service boundary.