Sitecore: How to get the class entered in General Link field

sitecore, sitecore7, sitecore7.2

Solution

Cast your field to `LinkField` class and use `Class` property:

LinkField field = Sitecore.Context.Item.Fields["Link"];
string cssClass = field.Class;

**EDIT: **

If you want to change behaviour of Sitecore `sc:link` to change css class of every link, you need to add your own processor to the `renderField` pipeline:

public class UpdateLinkClass
{
  public void Process(Sitecore.Pipelines.RenderField.RenderFieldArgs args)
  {
    if (args != null && (args.FieldTypeKey == "link" || args.FieldTypeKey == "general link"))
    {
      Sitecore.Data.Fields.LinkField linkField = args.Item.Fields[args.FieldName];
      if (!string.IsNullOrEmpty(linkField.Class))
      {
        args.Parameters["class"] = linkField.Class + "-custom";
      }
    }
  }
}

and register it before `GetLinkFieldValue` processor:

<processor type="My.Assembly.Namespace.UpdateLinkClass, My.Assembly" />
<processor type="Sitecore.Pipelines.RenderField.GetLinkFieldValue, Sitecore.Kernel" />

Problem

In the `General Link` field content author will set some class. I want to change the class while rendering, so I used the reflector and got the code of `Link.cs` and trying to extend the `PopulateParameters` method and looks like `this.CssStyle` and `this.CssClass` are always blank. Is there any way to get the value of class entered in the `General Link` field?

Original source