## Why is this an issue?

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();
    }