0

私は、次のことを行うための最良の方法を研究しようとしています。

ユーザー定義のテキスト ベースの式を、ページに表示されるコンテンツの概要を示すデータベースに保存します。

例: 「この人の雇用状況は、[雇用] 従業員、週 [時間] 時間です。」

[employment]、[hours] はデータベースのキー/値に対応します

例:

TABLE
ID    KEY             VALUE
1     employment      casual
1     hours           10
2     employment      parttime
2     hours           25

実行時に、このユーザー定義式が表示に使用されるページは個人 ID にアクセスでき、データベースから関連する詳細を収集し、[employment]、[hours] プレースホルダーを解析して、取得したデータに置き換える必要があります。

例: 「この人の雇用形態は、週 10 時間の非正規社員です。

私が探しているソリューションは、任意の数のプレースホルダー内およびその周囲に静的テキストを入力するユーザーを処理するのに十分動的である必要があります。


私の意味を明確にするために編集してください:

ユーザーが画面に表示したい式を入力できる設定領域があります。これは、データベースからの「キー」値を含む任意のテキストである可能性があります。別のユーザーには、独自に定義された式が表示されます。

別の例: 「従業員は [hours] 時間、[employment] で働いています」

次のように表示されます: 「従業員は 10 時間勤務、カジュアル」


検索がうまくいかないか、結果をよく理解していないだけです。CustomExpressionBuilder、ラムダ式、式ツリーなどに関する多くの情報を見つけましたが、これらのいずれかが私が行う必要があることの正しいトラックであるかどうか混乱しています。おそらく、私はこれに慣れていないという私の理解にまだそこにいません!

これを機能させることができれば、単純な 3 項型の機能や数学的な機能を追加できるようになりたいと思っています。これを非常に簡単にするNCalcというライブラリがあるようですが、最初に必要なテキスト置換要件の例や、それを機能させるための調整方法がすぐにわかりませんでした。

アドバイスをいただきありがとうございます。さらに調査したいと思いますが、正しい方向に少し押す必要があります。

4

1 に答える 1

0

あなたの質問から、この問題をどこまで達成したか、つまり、データベースからすべての値をすでに取得できるかどうかについては、少しあいまいです。

上記のように文字列式を作成しようとしているだけの場合は、上記の値を取得したら、おそらくString.Formatまたは文字列ビルダーのいずれかを使用します。

たとえば、データベースから値があり、それらがPersonクラスのプロパティ内に含まれていると仮定した場合(例として)、次のような効果をもたらすことができます。

var message = String.Format("The employment status of this person is a {0} employee, {1} hrs a week.", person.Employment, person.Hours);

私が言ったように、問題がどこにあるのかという質問からは少し曖昧ですが、値を取得した後でその1つの特定の式を作成するだけの場合は、上記が機能します。データベースからそれらを取得したら、person.Employmentおよびperson.Hours引数を適切な値に置き換えることができます。

于 2012-06-20T15:26:20.057 に答える