多くのルールを定義するXMLファイルがあります。 XMLファイルをルールエンジンにロードします。ルールエンジン用の動的ロードクラス
ロードするXMLファイルに応じて、私は必要なクラスを見つけるためにどの名前空間を選ぶ必要があります。その後、XMLの各行でどのクラスをロードするかを決定する必要があります。
マイXML
<RuleList assembly="BMW">
<rule>
<code>2345</code>
<errorMessage>foo bar</errorMessage>
<order>1</order>
</rule>
</RuleList>
<RuleList assembly="FORD">
<rule>
<code>0045</code>
<errorMessage>foo bar</errorMessage>
<order>3</order>
</rule>
</RuleList>
私は、一度に1つのルールリストを処理します。
ロードするClassNameを定義する各ルールに追加のXML属性を追加する必要がありますか? 私はクラス名としてコードを使用したくないのですか?または私はちょうど私が[コード= 0045]からクラスをロードすることはできますか私は、「保存されなければならない私のクラスの属性としてのコードを追加して、例
namespace FORD
{
[code=0045]
public bool IsValidColor(foo) : IisValid
{
return true
}
}
のために動的に
それをロードするためにそれを使用することができますIsValidColor "をXMLに追加します。パフォーマンスの違いはありますか?
したがって、私は[Code( "0045")]構文を使用しました。実際にそれをフィルタリングするにはどうしたらいいですか? Assemblyクラスで使用できるlinqクエリのようですか? – Daveo
ええ、あなたは 'Assembly.GetTypes()'を使用して、すべてのタイプの属性をチェックしなければなりません。編集を参照してください。 – svick