验证使用DataContract反序列化的对象

时间:2013-10-20 15:08:10

标签: c# validation datacontract

我正在写一个代表网格的类;该列表中的顶点列表和索引列表。此类是不可变的,并在构造时进行验证。但是,我还想对反序列化强制执行验证,例如通过WCF接收网格或从文件中读取网格。我使用[OnDeserialized]来调用相同的验证方法,如果失败则抛出一个SerializationException,但是在OS X上运行Mono上的单元测试时,它将SerializationException包装在一个TargetInvocationException中,而ExpectException属性并没有将它接收到这样,测试失败了。

这可能是Mono中的一个错误,但它让我感到疑惑,我是否正确地做到了这一点?这样做的首选方式是什么?

在属性中进行验证不会起作用,因为任何一个属性都依赖于另一个属性进行验证;确保指数在范围内,三角形不退化等等。

谢谢。

0 个答案:

没有答案