Denne feature kan benyttes, hvis man har behov for at udvide funktionalitet på eksisterende metoder. Man kan fx. have metoder med samme navn og signatur, men med forskellige returtyper. Overload af metoder virker kun, hvis signaturen divergerer. I tilfælde af man skal returnere et forretningsobjekt eller xml serialiseret format af objektet, kan man gøre brug af Extension methods. For at undgå to versioner af ens metoder fx. HentMitObjekt(int id) og HentMitObjektSerialiseret(int id), kan man gøre brug af følgende generic version af en extension method.

   1:  public static class EntityExtension {
   2:     public static XmlDocument ToXmlDocument<T>(this T entity) where T : IXmlable {
   3:              return SerializeHelper.Serialize(entity);
   4:     }
   5:  }


Denne metode extender XmlDocument, og samtidig er der lavet en afgrænsning i form af IXmlable constraint på metoden. Metoden er valgt at blive placeret i en static klasse ved navn EntityExtension. Alle de forretningsobjekter, der skal serialiseres skal implentere IXmlable interfacet.

   1:  public class MitObjekt: IXmlable {
   2:         public int Id { get; set; }
   3:         public string Navn { get; set; }
   4:  }


Man kan herefter gøre følgende:

   1:  var xmldokument = MinManager.HentMitObjekt().ToXmlDocument();


Eller direkte på objektet:

   1:  var mitObjekt = new MitObjekt();
   2:  ...
   3:  ...
   4:  ...
   5:  mitObjekt.ToXmlDocument();


Extension method sørger for man kan kalde ToXmlDocument på alle entiteter der implementerer IXmlable interfacet.