我有一个定义了很多规则的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>
我只能一次处理一个规则列表。
我是否应该为定义要加载的ClassName的每个规则添加额外的XML属性? 因为我不想使用代码作为类名?或者,我可以只添加代码到我的类中的属性,并用它来动态
加载例如
namespace FORD
{
[code=0045]
public bool IsValidColor(foo) : IisValid
{
return true
}
}
我可以加载的类从[代码= 0045】或者我应该只是存储“ IsValidColor“。是否有性能差异?
所以如果我使用[Code(“0045”)]语法。我如何实际过滤?有没有像我可以在Assembly类上使用的linq查询 – Daveo
是的,你必须使用'Assembly.GetTypes()'然后检查每个类型的属性。请参阅编辑。 – svick