首页 >后端开发 >C++ >如何在 C# 中向运行时属性添加验证属性?

如何在 C# 中向运行时属性添加验证属性?

Patricia Arquette
Patricia Arquette原创
2025-01-03 15:58:39548浏览

How to Add Validation Attributes to Runtime Properties in C#?

向运行时属性添加属性

在尝试在运行时向属性添加验证属性时,您遇到了一个异常,指出“集合是固定的尺寸。”要解决此问题,请考虑以下事项:

您提供的代码涉及调用 FillAttributes 方法。然而,这个特定的方法需要一个属性数组作为其参数,而不是单个属性。要纠正此问题,您应该修改代码以传递包含所需属性的数组:

// Create an array of attributes
var attributes = new ValidationAttribute[] { attribute };

// Invoke FillAttribute method
methodInfo.Invoke(propDesc, new object[] { attributes });

或者,您可以完全绕过 FillAttributes 方法,直接将属性分配给属性描述符:

// Assign attribute to property descriptor
propDesc.Attributes = new Attribute[] { new RequiredAttribute() };

根据具体场景和您的设计偏好,这些方法的组合应该允许您在运行时向属性添加属性,而不会遇到“Collection was固定大小”例外。

以上是如何在 C# 中向运行时属性添加验证属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn