Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

PrivateObject.Invoke Method (String, BindingFlags, Type[], Object[], CultureInfo, 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)

public Object Invoke(
	string name,
	BindingFlags bindingFlags,
	Type[] parameterTypes,
	Object[] args,
	CultureInfo culture,
	Type[] typeArguments


Type: System.String

The name of the member to invoke.

Type: System.Reflection.BindingFlags
Type: System.Type[]

An array of Type objects that represents the number, order, and type of the parameters for the method to access.


An empty array of the type Type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.

Type: System.Object[]

Any arguments that the member requires.

Type: System.Globalization.CultureInfo

The 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.


null to use the current thread's CultureInfo.

Type: System.Type[]

An array of type arguments to use when invoking a generic method.

Return Value

Type: System.Object

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:

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);

© 2015 Microsoft