public string GetServiceMethodDescription(rfl.MethodInfo mi) { DescriptionAttribute desc = mi.GetAttribute<DescriptionAttribute>(); string description = "<table><tr><td colspan=\"2\"><i>" + (desc == null ? "No description." : desc.Description) + "</i></td></tr>"; description += "<tr><td colspan=\"2\"> </td></tr>"; foreach (rfl.PropertyInfo pi in mi.GetParameters()[0].ParameterType.GetProperties()) { DescriptionAttribute desc2 = pi.GetAttribute<DescriptionAttribute>(); description += string.Format("<tr><td><b>{0}</b></td><td>{1}</td></tr>", pi.Name, (desc2 == null ? "" : desc2.Description)); } description += "</table>"; return description; }