PrivateObject::Invoke Method (String^, BindingFlags, array<Type^>^, array<Object^>^, CultureInfo^, array<Type^>^)
Used to access generic members of a private object.
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
public: Object^ Invoke( String^ name, BindingFlags bindingFlags, array<Type^>^ parameterTypes, array<Object^>^ args, CultureInfo^ culture, array<Type^>^ typeArguments )
Parameters
- name
-
Type:
System::String^
The name of the member to invoke.
- invokeAttr
A bitmask comprised of one or more BindingFlags that specifies how the search for the field or property is conducted. The type of lookup need not be specified.
- 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-
null 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^Legacy Code Example
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); }