Heim >Backend-Entwicklung >C++ >Wie füge ich Validierungsattribute zu Laufzeiteigenschaften in C# hinzu?
Bei Ihrem Versuch, einer Eigenschaft zur Laufzeit ein Validierungsattribut hinzuzufügen, sind Sie auf eine Ausnahme gestoßen, die besagt: „Die Sammlung war von einer festen Größe." Um dieses Problem zu beheben, berücksichtigen Sie Folgendes:
Der von Ihnen bereitgestellte Code beinhaltet den Aufruf der FillAttributes-Methode. Diese spezielle Methode erwartet jedoch als Argument ein Array von Attributen und nicht ein einzelnes Attribut. Um dies zu beheben, sollten Sie Ihren Code so ändern, dass er ein Array mit dem gewünschten Attribut übergibt:
// Create an array of attributes var attributes = new ValidationAttribute[] { attribute }; // Invoke FillAttribute method methodInfo.Invoke(propDesc, new object[] { attributes });
Alternativ können Sie die FillAttributes-Methode vollständig umgehen und das Attribut direkt dem Eigenschaftsdeskriptor zuweisen:
// Assign attribute to property descriptor propDesc.Attributes = new Attribute[] { new RequiredAttribute() };
Abhängig vom spezifischen Szenario und Ihren Designpräferenzen sollte es Ihnen jeder dieser Ansätze ermöglichen, zur Laufzeit Attribute zu Eigenschaften hinzuzufügen, ohne dass die Meldung „Die Sammlung war fest“ auftritt „Größe“ Ausnahme.
Das obige ist der detaillierte Inhalt vonWie füge ich Validierungsattribute zu Laufzeiteigenschaften in C# hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!