> 백엔드 개발 > C++ > 런타임 시 속성 매개변수를 동적으로 수정하려면 어떻게 해야 합니까?

런타임 시 속성 매개변수를 동적으로 수정하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2025-01-02 17:09:40
원래의
289명이 탐색했습니다.

How Can I Dynamically Modify Attribute Parameters at Runtime?

동적으로 속성 매개변수 수정

특정 시나리오에서는 런타임 시 속성의 매개변수를 수정해야 하는 상황이 발생할 수 있습니다. 일반적으로 특성은 정적이며 클래스나 속성에 적용된 후에는 변경할 수 없습니다. 그러나 속성 인스턴스 자체를 조작하여 이 기능을 달성할 수 있는 방법이 있습니다.

타사 공급업체에서 제공하는 다음 UserInfo 클래스를 고려하세요.

public class UserInfo
{
    [Category("change me!")]
    public int Age
    {
        get;
        set;
    }

    [Category("change me!")]
    public string Name
    {
        get;
        set;
    }
}
로그인 후 복사

이러한 카테고리를 수정하려는 의도에도 불구하고 공급업체 제한으로 인해 직접 수정할 수는 없습니다. 이 문제를 방지하려면 다음 기술을 사용할 수 있습니다.

  1. 속성 인스턴스 검색:

CategoryAttribute[] attrs = (카테고리속성[]) typeof(UserInfo)</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">.GetProperty("Age").GetCustomAttributes(typeof(CategoryAttribute), false);
로그인 후 복사
  1. 매개변수 수정:

attrs[0].Category = "My New Category";

  1. 변경 사항 검사:

Console.WriteLine(attrs[0].Category ); // "My New Category" 출력

속성 인스턴스를 직접 조작하여 런타임 시 해당 매개변수의 값을 동적으로 변경할 수 있습니다. 이를 통해 공급업체에서 제공한 원본 코드를 수정하지 않고도 UserInfo 클래스의 카테고리 이름을 수정할 수 있습니다.

위 내용은 런타임 시 속성 매개변수를 동적으로 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿