9

ServiceStackは、c# 属性を使用して Web サービスのレスト パスをマークします。

例えば

[RestService("/hello1")]
[RestService("/hello2")]
public class Hello

Hello クラスの doxygen 出力に、Doxygen に RestService 属性の値を含めさせたいと考えています。括弧付きの行全体が出力ドキュメントに含まれている場合は、きれいなフォーマットについてはあまり気にしません。

助言がありますか?

Doxygen 拡張機能を作成するよりも、手早く汚いトリックを使用する方が望ましいでしょう ;)

乾杯

ティメク

====編集

doxygenユーザーの答えの Python バージョン (Windows でも簡単に動作します) は次のようになります。

#!/usr/bin/env python
import sys
import re

if (len(sys.argv) < 2):
    print "No input file"
else:
    f = open(sys.argv[1])
    line = f.readline()
    while line:
        re1 = re.compile("\[RestService\(\"(.*)\",.*\"(.*)\"\)]")
        re1.search(line)
        sys.stdout.write(re1.sub(r"/** \\b RestService: \2 \1\\n */\n", line))
        #sys.stdout.write(line)
        line = f.readline()
    f.close()

DOXYFILE は次のようになります。

INPUT_FILTER           = "doxygenFilter.py"
4

2 に答える 2

10

行を変換する入力フィルターを作成できます

[RestService("/hello1")]

/** \b RestService: "/hello1"\n */

たとえば、次のような perl マジックを次のファイルに入れますfilter.pl

open(F, "<", $ARGV[0]);
while(<F>) { /^\s*\[RestService\((.*)\)\]\s*$/ ? 
             print "/** \\b RestService: $1\\n */\n" : print $_; }

INPUT_FILTERそれをDoxyfileのタグで使用します。

INPUT_FILTER           = "perl filter.pl"
于 2012-02-15T21:11:26.453 に答える