Tag: validation

我可以通过哪些方法确保字符串属性具有特定长度?

我已经创建了一些类,用于向我的数据库中的存储过程提供数据。 存储过程中的varchar参数具有长度规范(例如varchar(6) ,我想在将它们传递给存储过程之前validation所有字符串属性的长度。 有一个简单的,声明性的方法来做到这一点? 到目前为止,我有两个概念性想法: 属性 public class MyDataClass { [MaxStringLength = 50] public string CompanyName { get; set; } } 我不确定我需要使用哪些程序集/命名空间来实现这种声明性标记。 我认为这已经存在,但我不确定它在哪里以及它是否是最佳方式。 在属性中validation public class MyDataClass { private string _CompanyName; public string CompanyName { get {return _CompanyName;} set { if (value.Length > 50) throw new InvalidOperationException(); _CompanyName = value; } } } 这似乎是很多工作,并且会让我当前简单的课看起来很丑陋,但我想它会完成工作。 这也需要大量的复制和粘贴才能做到这一点。

如何validation用户键入WinForms文本框的字符?

在文本框中输入名称时,我应该编写什么代码来防止除“_”(下划线)之外的任何特殊字符? 如果存在此类字符,则应显示弹出消息。

如何validationDateTime格式?

我想让用户输入DateTime格式,但我需要validation它以检查它是否可以接受。 用户可以输入“yyyy-MM-dd”并且没问题,但是他们也可以输入“MM / yyyyMM / ddd”或任何其他组合。 有没有办法validation这个?

C#:WPF datagrid和xml文件

如何使用类读取xml文件并在数据网格上填充它? 数据网格应该具有validationfunction吗? Xml文件: John Doe Straight Track Demo 1

如何通过在父类上实现IDataErrorInfo来validation子对象

我正在使用MVVM架构开发WPF应用程序。 我是WPF的业余爱好者所以请耐心等待.. 我有两个模型类。 父类具有另一个(子)类的对象作为其属性。 (我的意思是嵌套对象而不是inheritance对象) 例如,请考虑以下方案。 public class Company { public string CompanyName {get; set;} public Employee EmployeeObj {get; set;} } public class Employee { public string FirstName {get; set;} public string LastName {get; set;} } 我想使用Enterprise Library Validation BlockvalidationEmployee实体的属性。 我可以通过在employee类中实现IDataErroInfo接口来实现,如下所示 public class Employee : IDataErrorInfo { [NotNullValidator(MessageTemplate=”First Name is mandatory”] public string FirstName {get; […]

强制INotifyDataErrorInfovalidation

我完全按照以下链接中的描述实现了INotifyDataErrorInfo: Easy MVVM Example With INotifyPropertyChanged And INotifyDataErrorInfo 我有一个TextBox ,它绑定到我的模型中的字符串属性。 XAML 模型 private string _fullName; public string FullName { get { return _fullName; } set { // Set raises OnPropertyChanged Set(ref _fullName, value); if (string.IsNullOrWhiteSpace(_fullName)) AddError(nameof(FullName), “Name required”); else RemoveError(nameof(FullName)); } } INotifyDataError代码 private Dictionary<string, List> _errors = new Dictionary<string, List>(); public event EventHandler ErrorsChanged; […]

C# – TextBoxvalidation

我有一些代码可以检查并确保当用户在字段中输入时,必须输入1到10之间的整数。 虽然如果用户关注该字段,那么“坏”数据(例如“fdgfdg”)仍然留在该字段中。 因此,有些人可以certificate当焦点在场上丢失时,如果数据无效,则输入默认值,例如5 private void textBox4_TextChanged(object sender, EventArgs e) { try { int numberEntered = int.Parse(textBox4.Text); if (numberEntered 10) { MessageBox.Show(“You must enter a number between 1 and 10”); } } catch (FormatException) { MessageBox.Show(“You need to enter an integer”); } }

如何validation对象的内部状态?

我有兴趣听听您在操作期间使用什么技术来validation对象的内部状态,从它自己的角度来看,只有因为内部状态不良或不变的违规才能失败。 我的主要关注点是C ++,因为在C#中,官方和流行的方式是抛出exception,而在C ++中,不仅有一种方法可以做到这一点(好吧,不是真的在C#中,我知道)。 请注意,我不是在讨论函数参数validation,而是更像是类不变完整性检查。 例如,假设我们希望Printer对象异步地对打印作业进行Queue 。 对于Printer的用户来说,该操作只能成功,因为异步队列的结果会在另一时间到达。 因此,没有相关的错误代码传达给调用者。 但是对于Printer对象,如果内部状态不好,则此操作可能会失败,即类不变量被破坏,这基本上意味着:一个错误。 这种情况不一定是Printer对象的用户感兴趣的。 就个人而言,我倾向于混合三种内部状态validation方式,我无法确定哪一个是最好的,如果有的话,哪一个绝对是最差的。 我想听听你对这些问题的看法,并且你也分享了自己在这方面的经验和想法。 我使用的第一个样式 – 以可控制的方式比损坏的数据更好地失败: void Printer::Queue(const PrintJob& job) { // Validate the state in both release and debug builds. // Never proceed with the queuing in a bad state. if(!IsValidState()) { throw InvalidOperationException(); } // Continue with queuing, parameter checking, etc. // Internal […]

确定域名在“hosts”文件中是否有效的最佳方法是什么?

Windows Hosts文件允许您将IP与主机名相关联,该主机名具有比普通Internet域名更大的自由度。 我想创建一个函数来确定给定的名称是否是有效的“主机”文件域名。 根据这个有效和无效的答案和实验,我想出了这个function: private static bool IsValidDomainName(string domain) { if (String.IsNullOrEmpty(domain) || domain.Length > 255) { return false; } Uri uri; if (!Uri.TryCreate(“http://” + domain, UriKind.Absolute, out uri)) { return false; } if (!String.Equals(uri.Host, domain, StringComparison.OrdinalIgnoreCase) || !uri.IsWellFormedOriginalString()) { return false; } foreach (string part in uri.Host.Split(‘.’)) { if (part.Length > 63) { return […]

使用单个按钮触发多个validation组?

假设页面TestPage.aspx有两个控件。 第一个控件是一个地址控件,它有一个名为“AddressGroup”的validation组。 该组包含几个validation控件,这些控件在该控件的validation摘要中包含在内。 第二个控件是信用卡控件,并有一个名为“CreditCardGroup”的validation组。 它还有几个validation器和一个摘要来显示结果。 为了解决这个问题,页面上有一些随机控件,它们还有与第三个ValidatorSummary控件绑定的validation器。 当用户按下“全部操作”按钮时,我希望该页面触发所有三个validation组。 按钮本身可以绑定到单个组或未标记的组。 据我所知,它不能与多个群体联系在一起。 解决方案不是从控件中提取validation,因为这会降低在单独控制中使用它们的价值。 谢谢你的想法。