.NET Framework 2.0 does not support extension methods out of the box, because you cannot reference System.Core that was introduced in .NET 3.5. However, by adding a simple attribute class you can use extension methods in .NET 2.0 as well. Here is the snippet.
namespace System.Runtime.CompilerServices {
/// <summary>
/// Mimics the .NET 3.5 extension methods attribute
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
internal sealed class ExtensionAttribute : System.Attribute {
/// <summary>
/// Instantiates a new instance of the ExtensionAttribute class
/// </summary>
public ExtensionAttribute()
: base() {
}
}
}
Here is an example afterwards using extension methods in one of our applications.
namespace Setup.AppCode {
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using System.Runtime.CompilerServices;
/// <summary>
/// Extension methods class
/// </summary>
public static class ExtensionMethods {
public static void DisableAllLinks(this LinkLabel control) {
foreach (LinkLabel.Link link in control.Links) {
link.Enabled = false;
}
}
public static void EnableAllLinks(this LinkLabel control) {
foreach (LinkLabel.Link link in control.Links) {
link.Enabled = true;
}
}
}
}
And don't forget to import the namespace that contains your extension methods where you will need them so they appear correctly.

