// // 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(); } } } }