自动提取C#类文件中的代码注释文字

这篇博客展示了如何使用C#从类文件中提取代码注释,包括类、方法和属性的注释。通过遍历指定目录下的.CS文件,提取以'///'开头的多行注释,并格式化输出,便于生成类地图。

<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.UI" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>
<%@ Import Namespace="System.Web.UI.WebControls.WebParts" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<%@ Import Namespace="System.Runtime.Remoting" %>
<%@ Import Namespace="System.Runtime.Remoting.Lifetime" %>
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
    string Folder = "C_BLL";//需要获取的文件夹
    string pContent;

    string KeywordFormat(string inputString)
    {
        string ks = "public,private,static,class,virtual,override,new,void,string,int,bool,double,float,char,byte,DateTime,set,get";
        string[] ka = ks.Split(',');
        string outputString = inputString;
        foreach (string kg in ka)
        {
            outputString = outputString.Replace(kg + " ", "<font class=/"keyword/">" + kg + " </font>");
            outputString = outputString.Replace("(" + kg + ")", "(<font class=/"keyword/">" + kg + "</font>)");
            outputString = outputString.Replace(kg + "[", "<font class=/"keyword/">" + kg + "</font>[");
        }
        return outputString;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        pContent = "";
        // 用于保存结果
        StringBuilder sb = new StringBuilder();
        // 用于保存注释
        StringBuilder sm = new StringBuilder();

        // 遍历指定目录下的全部 CS 文件
        DirectoryInfo csfile = new DirectoryInfo(Server.MapPath(Folder));
        foreach (System.IO.FileInfo fi in csfile.GetFiles())
        {
            int depth = 0;

            sb.AppendLine("<div style=/"padding:4px;margin:10px;padding-left:20px;border:solid 1px #AAAAAA;background-color:#F0F0F0/">");
            sb.AppendLine("<font class=/"file/"><b>" + Folder + "/" + fi.Name.ToString() + "</font> ");

            StreamReader TxtReader = new StreamReader(Server.MapPath(Folder + "/" + fi.Name.ToString()), System.Text.Encoding.Default);
            string FileContent = TxtReader.ReadToEnd();
            TxtReader.Close();

            // 按行分割
            string[] fLines = Regex.Split(FileContent, "/r/n");

<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值