내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

PropertyInfo.GetValue 메서드 (Object, Object[])

2013-12-13

인덱싱된 속성에 대해 선택적인 인덱스 값이 있는 속성의 값을 반환합니다.

Namespace:  System.Reflection
어셈블리:  mscorlib(mscorlib.dll)

public virtual Object GetValue(
	Object obj,
	Object[] index
)

매개 변수

obj
형식: System.Object
속성 값이 반환될 개체입니다.
index
형식: System.Object []
인덱싱된 속성에 대한 선택적 인덱스 값입니다. 인덱싱되지 않은 속성에 대해서는 이 값이 null이어야 합니다.

반환 값

형식: System.Object
obj 매개 변수에 지정된 개체의 속성 값입니다.

예외조건
ArgumentException

index 배열에 필요한 인수의 형식이 포함되지 않은 경우

-또는-

속성의 get 접근자가 없는 경우.

TargetException

해당 개체가 대상 형식과 일치하지 않거나 해당 속성이 인스턴스 속성이지만 objnull인 경우.

TargetParameterCountException

index에 있는 매개 변수의 수가 인덱싱된 속성이 사용하는 매개 변수의 수와 일치하지 않는 경우

MethodAccessException

호출자가 속성에 액세스할 수 없는 경우

TargetInvocationException

속성 값을 검색하는 동안 오류가 발생한 경우 예를 들어, 인덱싱된 속성에 대해 지정된 인덱스 값이 범위를 벗어난 경우가 해당됩니다. InnerException 속성은 오류에 대한 이유를 나타냅니다.

속성이 인덱싱되었는지 확인하려면 GetIndexParameters 메서드를 사용합니다. 결과의 배열에 0(영) 요소가 있는 경우 속성은 인덱싱되지 않습니다.

Windows Phone에서는 액세스 가능한 속성만 리플렉션을 사용하여 검색할 수 있습니다.

BindingFlags 매개 변수가 Default이고, Bindernull로 설정되어 있고 CultureInfonull로 설정된 추상 GetValue 메서드에 대한 구현을 제공하는 편리한 메서드입니다.

정적 속성이 개별 개체가 아닌 이 형식에 속해 있으므로 null을 개체 인수로 전달하여 정적 속성을 가져옵니다. 예를 들어, 다음 코드를 사용하여 CultureInfo의 정적 CurrentCulture 속성을 가져옵니다.

C#
object o = typeof(CultureInfo)
    .GetProperty("CurrentCulture").GetValue(null, null); 
Visual Basic
Dim o As Object = GetType(CultureInfo) _ 
    .GetProperty("CurrentCulture").GetValue(Nothing, Nothing))

GetValue 메서드를 사용하려면 먼저 Type 클래스를 가져옵니다. Type에서 PropertyInfo를 가져옵니다. PropertyInfo에서 GetValue를 사용합니다.

버전 메모

Windows Phone

 잘못된 값을 GetValue에 전달하는 경우 메서드는 ArgumentNullException 대신 TargetException을 발생시킵니다.

인덱스 수가 실제 수보다 작으면 GetValueTargetParameterCountException 대신 ArgumentException을 발생시킵니다.

다음 예제에서는 인덱싱된 속성의 값을 가져오는 방법을 보여 줍니다. String.Chars 속성은 String 클래스의 기본 속성(C#에서는 인덱서)입니다.

참고참고:

이 예제를 실행하려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.


using System;
using System.Reflection;

class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        string test = "abcdefghijklmnopqrstuvwxyz";

        // To retrieve the value of the indexed Chars property  using 
        // reflection, create an instance of PropertyInfo for Chars.
        //
        PropertyInfo pinfo = typeof(string).GetProperty("Chars");

        // To retrieve an instance property, the GetValue method
        // requires the object whose property is being accessed, and 
        // an array of objects representing the index values. 

        // Get the seventh character in the test string. 
        // Note that the index is zero-based.
        object[] indexArgs = { 6 };
        object value = pinfo.GetValue(test, indexArgs);
        outputBlock.Text += 
            String.Format("The character at index 6 is \"{0}\".\n", value);

        // Show the complete string, one character at a time.
        for(int i = 0; i < test.Length; i++)
        {
            outputBlock.Text += pinfo.GetValue(test, new object[] { i });
        }
        outputBlock.Text += "\n";
    }
}

/* This example produces the following output:

The character at index 6 is "g".
abcdefghijklmnopqrstuvwxyz
 */


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft