WCF defines four types of contracts:
- Service contracts
- Data contracts
- Fault contracts
- Message contracts
Service contracts
Describe which operations the client can perform on the service.There are two types of Service Contracts.
- ServiceContract - This attribute is used to define the Interface.
- OperationContract - This attribute is used to define the method inside Interface.
[ServiceContract]
interface IMyContract
{
[OperationContract]
string MyMethod( );
}
class MyService : IMyContract
{
public string MyMethod( )
{
return "Hello World";
}
}
Data contracts
Define which data types are passed to and from the service. WCF defines implicit contracts for built-in types such as int and string, but we can easily define explicit opt-in data contracts for custom types.There are two types of Data Contracts.
- DataContract - attribute used to define the class
- DataMember - attribute used to define the properties.
[DataContract]
class Contact
{
[DataMember]
public string FirstName;
[DataMember]
public string LastName;
}
If DataMember attributes are not specified for a properties in the class, that property can't be passed to-from web service.