Some of differences that will determine whether you want to use a Partial Class or an Extension Method are
Partial Class
- Only works against classes in the same project/assembly
- Target class has to be marked as partial
- Has access to the Target class’ fields and protected members
- Target must be a class implementation
Extension Method
- Can be applied against classes in other assembles
- Must be static, has access to only the Target classes public members
- Target of extension can be a concrete type, or an abstract type or interface