首頁 >後端開發 >C++ >如何在 C# 中向運行時屬性新增驗證屬性?

如何在 C# 中向運行時屬性新增驗證屬性?

Patricia Arquette
Patricia Arquette原創
2025-01-03 15:58:39549瀏覽

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