PrivateObject.Invoke 메서드 (String, BindingFlags, array<Type[], array<Object[], CultureInfo, array<Type )
전용 개체의 제네릭 멤버에 액세스하는 데 사용됩니다.
네임스페이스: Microsoft.VisualStudio.TestTools.UnitTesting
어셈블리: Microsoft.VisualStudio.QualityTools.UnitTestFramework(Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
구문
‘선언
Public Function Invoke ( _
name As String, _
bindingFlags As BindingFlags, _
parameterTypes As Type(), _
args As Object(), _
culture As CultureInfo, _
typeArguments As Type() _
) As Object
public Object Invoke(
string name,
BindingFlags bindingFlags,
Type[] parameterTypes,
Object[] args,
CultureInfo culture,
Type[] typeArguments
)
public:
Object^ Invoke(
String^ name,
BindingFlags bindingFlags,
array<Type^>^ parameterTypes,
array<Object^>^ args,
CultureInfo^ culture,
array<Type^>^ typeArguments
)
member Invoke :
name:string *
bindingFlags:BindingFlags *
parameterTypes:Type[] *
args:Object[] *
culture:CultureInfo *
typeArguments:Type[] -> Object
public function Invoke(
name : String,
bindingFlags : BindingFlags,
parameterTypes : Type[],
args : Object[],
culture : CultureInfo,
typeArguments : Type[]
) : Object
매개 변수
- name
형식: System.String
호출할 멤버의 이름입니다.
- bindingFlags
형식: System.Reflection.BindingFlags
- parameterTypes
형식: array<System.Type[]
액세스하려는 메서드에 대한 매개 변수의 수, 순서 및 형식을 나타내는 Type 개체의 배열입니다.
또는
매개 변수를 사용하지 않는 메서드를 가져오기 위한 Type 형식의 빈 배열입니다(즉, Type[] types = new Type[0]).
- args
형식: array<System.Object[]
멤버에 필요한 인수입니다.
- culture
형식: System.Globalization.CultureInfo
사용할 전역화 로캘을 나타내는 CultureInfo 개체로, 숫자 문자열을 double로 변환하는 등의 로캘별 변환에 필요할 수 있습니다.
또는
현재 스레드의 CultureInfo를 사용할 경우 nullNull 참조(Visual Basic의 경우 Nothing)입니다.
- typeArguments
형식: array<System.Type[]
제네릭 메서드를 호출할 때 사용할 형식 인수의 배열입니다.
반환 값
형식: System.Object
예제
다음 코드는 테스트하는 응용 프로그램에 있습니다. 테스트할 제네릭 메서드인 TestThisMethod<T>를 포함합니다.
internal class Customer
{
internal T TestThisMethod<T>(T value)
{
return (value);
}
public Customer()
{
}
}
다음 코드는 단위 테스트의 테스트 메서드입니다. 테스트 대상 메서드를 호출할 때 최종 Type[] 매개 변수에 형식 인수를 전달하는 방법을 보여 줍니다.
[TestMethod]
public void TestSetCustomerId()
{
PrivateObject po = new PrivateObject(typeof(Customer));
int id = 100;
int actual = (int)po.Invoke("TestThisMethod", new Type[] { typeof(int) }, new Object[] { id }, new Type[] { typeof(int) });
Assert.AreEqual(actual, id);
}
.NET Framework 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.