런타임 시 속성에 유효성 검사 속성을 추가하려고 시도하는 동안 "컬렉션이 수정되었습니다"라는 예외가 발생했습니다. 크기." 이 문제를 해결하려면 다음을 고려하십시오.
제공한 코드에는 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() };
특정 시나리오와 디자인 선호도에 따라 이러한 접근 방식을 사용하면 런타임 시 문제를 겪지 않고 속성에 속성을 추가할 수 있습니다. "컬렉션의 크기가 고정되어 있습니다." 예외.
위 내용은 C#의 런타임 속성에 유효성 검사 특성을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!