PrivateObject.Invoke Method (String, BindingFlags, array<Type[], array<Object[], CultureInfo, array<Type )
Used to access generic members of a private object.
Namespace: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Syntax
'Declaration
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
Parameters
name
Type: StringThe name of the member to invoke.
- bindingFlags
Type: BindingFlags
parameterTypes
Type: array<Type[]An array of Type objects that represents the number, order, and type of the parameters for the method to access.
-or-
An empty array of the type Type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.
args
Type: array<Object[]Any arguments that the member requires.
culture
Type: CultureInfoThe CultureInfo object that represents the globalization locale to use, which might be necessary for locale-specific conversions, such as converting a numeric String to a Double.
-or-
nulla null reference (Nothing in Visual Basic) to use the current thread's CultureInfo.
typeArguments
Type: array<Type[]An array of type arguments to use when invoking a generic method.
Return Value
Type: Object
Examples
The following code is in the application that you are testing. It contains a generic method that you want to test, TestThisMethod<T>.
internal class Customer
{
internal T TestThisMethod<T>(T value)
{
return (value);
}
public Customer()
{
}
}
The following code is a test method in your unit test. It shows how to pass a type argument, in the final Type[] parameter, when it invokes the method that you are testing:
[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 Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.