The ServiceContract attribute specifies that a class or interface defines the communication contract of a Windows Communication
Foundation (WCF) service. The service operations of this class or interface are defined by OperationContract attributes added to methods.
It doesn’t make sense to define a contract without any service operations; thus, in a ServiceContract class or interface at least one
method should be annotated with OperationContract. Similarly, WCF only serves OperationContract methods that are defined
inside ServiceContract classes or interfaces; thus, this rule also checks that ServiceContract is added to the containing
type of OperationContract methods.
Noncompliant code example
[ServiceContract]
interface IMyService // Noncompliant
{
int MyServiceMethod();
}
Compliant solution
[ServiceContract]
interface IMyService
{
[OperationContract]
int MyServiceMethod();
}