> 백엔드 개발 > C++ > C#에서 리플렉션을 사용하여 속성 값을 동적으로 설정하려면 어떻게 해야 합니까?

C#에서 리플렉션을 사용하여 속성 값을 동적으로 설정하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2025-01-04 06:45:40
원래의
294명이 탐색했습니다.

How Can Reflection Be Used to Dynamically Set Property Values in C#?

Reflection을 활용하여 속성 값 수정

강력한 .NET 프레임워크 기능인 Reflection을 사용하면 개체와 그 구성원을 검사하고 수정할 수 있습니다. 동적으로. 이 맥락에서는 리플렉션을 활용하여 C# 클래스 내의 특정 속성 값을 설정하는 방법을 살펴보겠습니다.

"first_name"과 같은 속성 이름을 알고 있는 시나리오를 생각해 보세요. 이 문자열을 사용하여 해당 값을 수정하려고 합니다. Reflection은 이 문제에 대한 해결책을 제공합니다.

원하는 결과를 얻으려면 다음 단계를 수행할 수 있습니다.

  1. Type.GetProperty를 사용하여 속성을 가져옵니다. Type.GetProperty를 활용하여 속성의 메타데이터를 얻습니다. 속성이 공개되지 않은 경우 바인딩 플래그가 필요할 수 있습니다.
  2. SetValue를 통해 값 설정: 검색된 속성에 대해 SetValue 메서드를 호출하여 원하는 값을 할당합니다. SetValue를 호출하려면 객체 인스턴스가 필요합니다.

제공된 코드 샘플은 이 접근 방식을 예시합니다.

class Person
{
    public string Name { get; set; }
}

class Test
{
    static void Main(string[] arg)
    {
        Person p = new Person();
        var property = typeof(Person).GetProperty("Name");
        property.SetValue(p, "Jon", null);
        Console.WriteLine(p.Name); // Jon
    }
}
로그인 후 복사

속성의 접근성이 비공개인 경우 다음과 같이 BindingFlags를 지정합니다.

var property = typeof(Person).GetProperty("Name", BindingFlags.NonPublic | BindingFlags.Instance);
로그인 후 복사

리플렉션의 도움으로 속성 값을 동적으로 설정하는 것이 가능해지며 코드 조작 및 런타임에 유연성을 제공합니다. 행동.

위 내용은 C#에서 리플렉션을 사용하여 속성 값을 동적으로 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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