Heim >Backend-Entwicklung >C++ >Wie füge ich Validierungsattribute zu Laufzeiteigenschaften in C# hinzu?

Wie füge ich Validierungsattribute zu Laufzeiteigenschaften in C# hinzu?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-03 15:58:39513Durchsuche

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

Attribute zu Laufzeiteigenschaften hinzufügen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn