Yes. They have been supported and encouraged since .NET 1.0.
Specifying Data Transfer in Service Contracts
http://msdn2.microsoft.com/en-us/library/ms732038.aspx
EG:
[ServiceContract, DataContractFormat(Style = OperationFormatStyle.Rpc)]
interface ICalculator
{
[OperationContract, DataContractFormat(Style =
OperationFormatStyle.Rpc)]
double Add(double a, double b);
[OperationContract, DataContractFormat(Style =
OperationFormatStyle.Document)]
double Subtract(double a, double b);
}
DataContractFormatAttribute Class
http://msdn2.microsoft.com/en-us/library/system.servicemodel.datacontractformatattribute.aspx
David