//
    // Handles fields, but perhaps this is better done in DocFixer to pull the definitions
    // from the docs?
    //
    public static void ProcessField(Type t, XDocument xdoc, PropertyInfo pi)
    {
        var fieldAttr = pi.GetCustomAttributes(typeof(FieldAttribute), true);

        if (fieldAttr.Length == 0)
        {
            return;
        }

        var export = ((FieldAttribute)fieldAttr [0]).SymbolName;

        var field = xdoc.XPathSelectElement("Type/Members/Member[@MemberName='" + pi.Name + "']");

        if (field == null)
        {
            Console.WriteLine("Warning: {0} document is not up-to-date with the latest assembly", t);
            return;
        }
        var returnType = field.XPathSelectElement("ReturnValue/ReturnType");
        var summary    = field.XPathSelectElement("Docs/summary");
        var remarks    = field.XPathSelectElement("Docs/remarks");

        if (mergeAppledocs)
        {
            if (returnType.Value == "MonoMac.Foundation.NSString" && export.EndsWith("Notification"))
            {
                var mdoc = DocGenerator.GetAppleMemberDocs(t, export);
                if (mdoc == null)
                {
                    Console.WriteLine("Failed to load docs for {0} - {1}", t.Name, export);
                    return;
                }

                var section = DocGenerator.ExtractSection(mdoc);

                //
                // Make this pretty, the first paragraph we turn into the summary,
                // the rest we put in the remarks section
                //
                summary.Value = "";
                summary.Add(section);

                var skipOne = summary.Nodes().Skip(2).ToArray();
                remarks.Value = "";
                remarks.Add(skipOne);
                foreach (var n in skipOne)
                {
                    n.Remove();
                }
            }
        }
    }