条件式を文字列に解析する方法を探しています。
私が考えることができる最良の例は、LINQ-to-SQLです。ExpressionVisitorsを使用して「Where」句をフォーマットします。例:
from a in b where a.x == 5 && a.y < 3 select a
これは、次の文字列に変換されます(おおよそ、MSSQLは私にとって最新ではありません)。
"SELECT * FROM b WHERE x = 5 AND y < 3"
私が読んだことから、これはこの記事で説明されているように、ExpressionVisitorクラスを使用して行われました:リンク
問題は、LINQを使用していないことですが、この特定の機能が必要です。そのような条件を解析する方法はありますか?リフレクション、デリゲート、ラムダなどで何でもするつもりです。
正直なところ、それは不可能だと思いますが、私の脳は少し揚げられているので(読んでください:質問がばかげているならいいです)、私はS/Oを試してみたほうがいいと思いました。
編集:最終的な使用例:
// Usage:
foo.Bar(foo => foo.X == 5 && foo.Y < 3)
// Ideal string output (variable name (foo) is not needed):
"foo.X == 5 && foo.Y < 3"
編集2:はい、数は3より小さく、5に等しくすることができます。私の脳は揚げられているとあなたに言いました。