Data Contracts
Avoid inferred data contracts (POCO). Instead, be explicit and apply the
DataContractattribute.Use the
DataMemberattribute only on properties or read-only public members.Avoid explicit XML serialization on your own types.
Avoid message contracts.
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. Use explicit interface implementation.Avoid setting
IgnoreExtensionDataObjecttotruein theServiceBehaviorandCallbackBehaviorattributes. 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.Handle known types using the generic resolver.
Suppress the generation of a generic type parameter hash code and provide a legible type name instead.