假设我有一个xml文件,如:
<Filters>
<Blur Name="Blur01" />
<Sharpen Name="Sharpen01" Amount=5 />
</Filters>
如何在没有性能影响的情况下设置Blur
,Sharpen
等的属性?我认为反射会起作用,但节点和属性的数量将以百万计,因此IMO的反射成本会非常高。
所以说我得到一个属性列表,如:
{ "Name", "Amount", ... }
如何在已初始化的对象上调用它们?
我也可以选择将它们传递给可选参数,因为我将在读取它时从xml构造对象。
答案 0 :(得分:4)
在.NET中使用内置的XML序列化。如果遇到性能问题,请考虑使用SGEN.exe预生成解析器。
XML Serializer Generator Tool (Sgen.exe)
如果你自己解析,如果你保留PropertyInfo对象,反射就不会非常昂贵。
最后,您可以编写自己的解析器......但实际上,.NET提供的XML序列化效果非常好。