0

文字列として保存されている条件式を実行時に評価する最良の方法は何ですか。

MVC3、.NET4、C#4 を使用しています。

したがって、ソリューションが「Eval」と呼ばれるメソッドであると仮定すると、次のようになります。

if eval("User.Name.Length>0")
{return true;}

次と同じように動作する必要があります。

if (User.Name.Length>0)
{return true;}

したがって、このソリューションの一部として、スコープ内の .NET 型にもアクセスする必要があります。

では、「Eval」の解決策は何でしょうか?

ありがとう。

PS私は、解決策としてDynamic LINQに焦点を当てた別の質問を投稿しました。しかし、私の解決策はもっと簡単だと思うので、この質問です。

編集。「ユーザー」を読みすぎないでください。任意のオブジェクトである可能性があります。コンパイル時に明示的に記述されたかのように、実行時に文字列式を評価する方法に興味があります。別の例は次のとおりです。

if eval("mycat.coatcolour=='ginger'")
{return true;}
4

1 に答える 1

2

独自のパーサーを実装し、リフレクション / FastMember を使用してパスをナビゲートするか、 CS-Scriptなどのスクリプト ソリューションを探す必要があります。

于 2013-03-26T13:32:30.937 に答える