C#/ ASP.NET MVCで記述され、いくつかの組織で使用されるデータベース駆動型アプリケーションの機能を開発しています。これの一部は、両方の整数である特定のユーザ入力AおよびBにスコアを割り当てるための単純なシステムを含む。SQLデータベースへの挿入とSQLデータベースからの取り出しのためのシンプルなC#関数のシンプル化
各組織には、AとBからスコアを生成する独自の方法があり、タイプFunc<int, int, int>
として表すことができます。この関数は、基本演算子を必要とするだけです。たとえば、A * B
または(A * 2) + B
です。これは、現在の組織のデータベースに保存され、必要に応じて実行される必要があります。
私はFunc<int, int, int>
のインスタンスをシリアル化しようとしましたが、もちろんISerializable
を実装していません。どうやって進める?この機能を保存して実行できる代替方法がありますか?これは何らかの種類のカスタム解析コードに頼らなくても可能ですか?
ありがとうございました。
可能であれば、たとえば、ロードするサーバー側またはバイナリアセンブリをコンパイルするためにC#コードを格納することはできません。 (セキュリティ)。難解なロジックを必要としない場合は、単にNCalc(または使いたい小さなパーサを使いやすい)を使用して、式を文字列として格納します。 –
.NETのために利用できる広範囲の表現パーサとコンパイラがあります。あなたはおそらく冷ややかで、おそらくRoslynで一緒にハックします。文字列を格納して実行時にそれらの1つを使用するのが最も簡単なのでしょうか? –
clasicsのファンなら、[Polish notation](https://en.wikipedia.org/wiki/Polish_notation)をご覧ください:) –