public static string PreProcessObject(object source, object value)
 {
     return
         (value == null
             ? null
             : SnippetModifiers
          .Where(m => m.CanProcessObject(source, value))
          .Select(m => m.ProcessObject(source, value))
          .DefaultIfEmpty(XhtmlTextWriter.HtmlEncode(value.ToString())).First());
 }