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, _
    invokeAttr As BindingFlags, _
    parameterTypes As Type(), _
    args As Object(), _
    culture As CultureInfo, _
    typeArguments As Type() _
) As Object
'Usage
Dim instance As PrivateObject 
Dim name As String 
Dim invokeAttr As BindingFlags 
Dim parameterTypes As Type()
Dim args As Object()
Dim culture As CultureInfo 
Dim typeArguments As Type()
Dim returnValue As Object 

returnValue = instance.Invoke(name, invokeAttr, _
    parameterTypes, args, culture, typeArguments)
public Object Invoke(
    string name,
    BindingFlags invokeAttr,
    Type[] parameterTypes,
    Object[] args,
    CultureInfo culture,
    Type[] typeArguments
)
public:
Object^ Invoke(
    String^ name, 
    BindingFlags invokeAttr, 
    array<Type^>^ parameterTypes, 
    array<Object^>^ args, 
    CultureInfo^ culture, 
    array<Type^>^ typeArguments
)
public function Invoke(
    name : String, 
    invokeAttr : BindingFlags, 
    parameterTypes : Type[], 
    args : Object[], 
    culture : CultureInfo, 
    typeArguments : Type[]
) : Object

Parameters

  • parameterTypes
    Type: array<System.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<System.Object[]

    Any arguments that the member requires.

  • culture
    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.

    -or-

    nulla null reference (Nothing in Visual Basic) to use the current thread's CultureInfo.

  • typeArguments
    Type: array<System.Type[]

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

Return Value

Type: System.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

See Also

Reference

PrivateObject Class

PrivateObject Members

Invoke Overload

Microsoft.VisualStudio.TestTools.UnitTesting Namespace