Empty interfaces are usually used as a marker or a way to identify groups of types. The preferred way to achieve this is to use custom attributes.

Noncompliant Code Example

using System;

namespace MyLibrary
{
   public interface MyInterface // Noncompliant
   {
   }
}

Compliant Solution

using System;

namespace MyLibrary
{
   public interface MyInterface
   {
      void Foo();
   }
}