0
Invoice 45
またはCase 123
のような参照を含むデータベースログメッセージがあり、ユーザーに表示するときに適切な請求書またはケースへのリンクを出力するために解析したい。ASP.NET MVCのシンプルな文字列テンプレート
RegExを解析し、ASCX表示テンプレートを使用してアクションリンクに置き換えるのはかなり簡単ですが、右にの方法がありますか?これはパーサーが文字列をトークン化し、潜在的な循環参照を防止することを意味します。
合意しましたが、各表示テンプレートで新しいRegExオブジェクトをインスタンス化しないでください。循環参照が再帰的置換(壊滅的再帰とも呼ばれる)につながる可能性はありますか? –
再帰の危険性がどこにあるのかよく分かりません。複数の一致を返す文字列の単なる正規表現ではありませんか?私の例では再帰を示唆するものはありません。また、私は正規表現をインスタンス化するオーバーヘッドについては心配しません。必要な場合にオブジェクトを共有する方法がありますが、それは重要ではないでしょうし、表示テンプレートにはかなりのオーバーヘッドがあります。 –
ヘルパーが呼び出されるたびに別々にオブジェクトをインスタンス化するというオーバーヘッドが心配されている場合は、ビュー内の匿名メソッドにコンパイルされるインラインヘルパーが使用される可能性があります。景色。 –