首页 > 解决方案 > MaxLength 不会触发智能感知,并在运行时忽略具有无效长度的值

问题描述

我有以下课程和测试表格:

 class MyTestClass
    {
        [MaxLength(1)]
       public string TestString { get; set; }
    }

    private void TestForm_Load(object sender, EventArgs e)
        {
            MyTestClass test = new MyTestClass();
            test.TestString = "12345";´
        }

如图所示,我将 MaxLength 属性设置为 1,并为其分配了一个 5 字符的字符串。然而我的代码编译。当我运行项目时,它也不会抛出异常。

  1. 为什么它根本不起作用?我在 C# .Net 4.6.1,WinForm 项目中构建它。
  2. 我希望它在智能感知期间产生错误。像过时的属性。([Obsolete("This function is deprecated", true)] 阻止构建代码。)我该怎么做?

标签: c#attributesdata-annotationsmaxlength

解决方案


  1. 问题是,属性仅适用于 MVC 和 EntityFramework。它们并非旨在在 VS 的错误列表中创建元素。

  2. 第二个问题仍然存在,但是很明显它无关紧要,我将其标记为答案。


推荐阅读