C# 如何根据一组可变的值范围进行验证?

C# 如何根据一组可变的值范围进行验证?,c#,wpf,oop,validation,C#,Wpf,Oop,Validation,我目前正在开发一个应用程序,它允许用户读取和配置设备。配置存储为XML 我面临的问题是如何定义应用程序的验证。例如,我存储在XML文件中的大多数值必须在不同的范围内,例如0-2、1-50、10个字符或20个字符,等等 我必须验证这些约束,我不想硬编码范围,因为当设备版本2出现时,配置文件将具有不同的范围集。例如,将0-2改为0-4,现在允许40个字符,而不是20个字符 我应该如何处理这个问题?我应该将验证规则存储在单独的XML文件中吗?我是否应该为该设备定义一个具有硬编码配置范围的类,并为该设备

我目前正在开发一个应用程序,它允许用户读取和配置设备。配置存储为XML

我面临的问题是如何定义应用程序的验证。例如,我存储在XML文件中的大多数值必须在不同的范围内,例如0-2、1-50、10个字符或20个字符,等等

我必须验证这些约束,我不想硬编码范围,因为当设备版本2出现时,配置文件将具有不同的范围集。例如,将0-2改为0-4,现在允许40个字符,而不是20个字符

我应该如何处理这个问题?我应该将验证规则存储在单独的XML文件中吗?我是否应该为该设备定义一个具有硬编码配置范围的类,并为该设备的版本2创建一个具有其配置范围的新类?

可以在
XML
中完成,这是一种声明性编程,在
XML
中定义行为。但它不灵活,你可以很容易地跳进非常复杂的场景

我个人更愿意做的是维护代码内部的逻辑,但是必须检查源XML中的数据存储在某些
MatchData.XML
中的参数范围

希望这有帮助。

它可以在
XML
中完成,这是一种声明式编程,在
XML
中定义行为。但它不灵活,你可以很容易地跳进非常复杂的场景

我个人更愿意做的是维护代码内部的逻辑,但是必须检查源XML中的数据存储在某些
MatchData.XML
中的参数范围


希望这有帮助。

在这种情况下,我几乎总是更喜欢外部配置文件。您可以定义一个执行验证的对象(Validator)。当Validator对象被实例化时,它将实例化一个包含各种验证项的所有范围的验证规则对象。我将使用XML文件对该对象进行序列化/反序列化,该文件将包含在您的应用程序发行版中。

在这种情况下,我几乎总是更喜欢外部配置文件。您可以定义一个执行验证的对象(Validator)。当Validator对象被实例化时,它将实例化一个包含各种验证项的所有范围的验证规则对象。我将使用XML文件序列化/反序列化此对象,该文件将包含在您的应用程序分发中