WCF defines implicit contracts for built-in types such as int and string, modelcheck tutorial we can easily define explicit opt-in data contracts for custom types. There are two types of Data Contracts. DataContract - attribute used to modelvheck the class DataMember - attribute used to define the properties. Define which errors are raised by the service, and how the service handles and propagates errors to its clients. Message contracts Allow the service to interact modelcheck tutorial with messages.