All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.plugins.csharp.S3597.html Maven / Gradle / Ivy

There is a newer version: 10.2.0.105762
Show newest version

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy