C#AttributeRequiredAttribute我创建了属性[AttributeUsage(AttributeTargets.Class,AllowMultiple=true)][Serializable]publicclassTestPropertyAttribute:System.Attribute{publicstringName{get{返回_名称;}设置{_name=值;}}字符串_名称;我应该将“名称”标记为该属性的强制属性。怎么做?将它放在构造函数中而不是作为单独的属性:公共TestPropertyAttribute(字符串名称){_name=名称;}publicstringName{get{return_name;我不相信你可以强迫它,并在应用属性时使用Name=...语法。您应该使用System.ComponentModel.Data.Annotations.StringLength(dot.NET4)属性强制执行字符串的最小长度,并在您的数据中对其进行验证。此外,(人们会因为它通常是糟糕的设计而嘲笑我)当我不填充名称时,我从ctor抛出一个InvalidDataException(“你必须在属性中输入一个名称”)。我正在使用它,因为这是一个设计时属性,异常将在应用程序启动时运行,因此开发人员更容易修复,它不是最佳的,但我不知道如何与设计人员沟通。我一直在寻找直接与ErrorList中的警告/错误进行通信的方法,但直到现在,除了构建我自己的自定义设计器或插件之外,我还没有找到一种简单的方法来做到这一点。我想了很多关于构建一个插件来寻找SendWarning、SendError和自定义属性的问题,但还没有开始实施它。说过了,以上就是C#学习教程:C#属性的所有内容必须分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注—publicsealedclassTestPropertyAttribute:System.Attribute{[System.ComponentModel.DataAnnotations.StringLength(50),Required]publicstring名称{获取{返回_name;}set{if(String.IsNullOrEmpty(value))thrownewInvalidDataException("Nameisamadatoryproperty,pleasefillitnotasnullorstring.Emptythanks");}否则_name=值;}字符串_名称;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
