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

参数

  • parameterTypes
    类型:array<System.Type[]
    一个 Type 对象数组,表示要访问的方法的参数的数目、顺序和类型。
    - 或 -
    一个类型为 Type(即 Type[] types = new Type[0])的空数组,用于获取一个不带参数的方法。
  • args
    类型:array<System.Object[]
    该成员所需的所有参数。
  • culture
    类型:System.Globalization.CultureInfo
    CultureInfo 对象,表示要使用的全球化区域设置,将数值字符串转换为双精度等区域设置特定的转换可能需要该对象。
    - 或 -
    nullnull 引用(在 Visual Basic 中为 Nothing) ,表示使用当前线程的 CultureInfo
  • 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 安全性

请参见

参考

PrivateObject 类

Invoke 重载

Microsoft.VisualStudio.TestTools.UnitTesting 命名空间