C# 提取<summary></summary> 属性与 注释

怎么得到Student 的summary的值?


public class Student 
        {
            /// <summary>
            /// Id
            /// </summary>
            public int ID { get; set; }
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name { get; set; }
            /// <summary>
            /// 性别
            /// </summary>
            public string Sex { get; set; }
        }

目前可以用 PropertyInfo 获取class 里的属性 属性对应的注释获取不到

想获得得到的效果


| Id      |   ID        |
| 姓名  |   Name   |
| 性别  |   Sex      |

img

现在项目是数据库表结构没有字段说明 ,只有实体类有注释。 不能把所有实体类的注释都加上Description。

用正则表达式提取cs文件的字段说明,更新到数据库,再用原来的方式生成markdown文档行不?

可以使用组件Namotion.Reflection,同时需要在项目属性中开启生成xml启动项,如图:

img

示例代码如下:

using System;
using Namotion.Reflection;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string studentSummary = typeof(Student).GetXmlDocsSummary();
            Console.WriteLine(studentSummary);
            var piList = typeof(Student).GetProperties();
            foreach (var pi in piList)
            {
                var summary = pi.GetXmlDocsSummary();
                Console.WriteLine($"{pi.Name}-->{summary}");
            }
        }
    }
    
    /// <summary>
    /// 学生信息
    /// </summary>
    public class Student
    {

        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public string Sex { get; set; }
    }
}

支行效果如下:

学生信息
Id-->Id
Name-->姓名
Sex-->性别

Student student=new Student ();
student.ID='';
student.Name=‘’;
student.Sex=””;