WCF Contract Attributes

Service Contract Attributes

Service Contract Attributes are used to modify the service contract. Following are various Service Contract attributes that can be specified at service contract level :

  1. Name – controls the name of contract in the WSDL element.
  2. Namespace – controls the namespace of the contract in the WSDL element
  3. ConfigurationName – specifies the name of the service element in the configuration file to use.
  4. SessionMode – specifies whether the contract requires a binding that supports sessions.
  5. CallbackContract – specifies the return or call back contract in a two-way (duplex) conversation.
  6. HasProtectionLevel and ProtectionLevel – indicates whether all messages supporting the contract have a explicit ProtectionLevel value, and if so, what that level is.

Operation Contract Attributes

Operation Contract Attributes are used to modify the operation contract. Following are various Operation Contract attributes that can be specified at operation contract level :

  1. Action – specifies the action that uniquely identifies this operation. dispatches request messages to methods based on their action.
  2. AsyncPattern – indicates that the operation is implemented or can be called asynchronously using a Begin/End method pair.
  3. HasProtectionLevel – indicates whether the ProtectionLevel property has been explicitly set.
  4. IsOneWay – indicates that the operation only consists of a single input message. The operation has no associated output message.
  5. IsInitiating – specifies whether this operation can be the initial operation in a session.
  6. IsTerminating – specifies whether attempts to terminate the current session after the operation completes.
  7. ProtectionLevel – specifies the message-level security that an operation requires at run time.
  8. ReplyAction – specifies the action of the reply message for the operation.

Data Contract Attribute

Following are the Data Contracts attributes :
Name – The default name of a data contract for a given type is the name of that type. To override the default, set the Name property of the DataContractAttribute to an alternative name.
Namespace – By default, any given CLR namespace (in the format Clr.Namespace) is mapped to the namespace http://schemas.datacontract.org/2004/07/Clr.Namespace. To override the data contract namespace for each type, set the Namespace property of the DataContractAttribute.

Leave a Reply