Поделиться через


PrivateObject.Invoke - метод (String, BindingFlags, array<Type[], array<Object[], CultureInfo, array<Type[])

Обновлен: Ноябрь 2007

Используется для доступа к универсальным элементам закрытого объекта.

Пространство имен:  Microsoft.VisualStudio.TestTools.UnitTesting
Сборка:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (в Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Синтаксис

'Декларация
Public Function Invoke ( _
    name As String, _
    invokeAttr As BindingFlags, _
    parameterTypes As Type(), _
    args As Object(), _
    culture As CultureInfo, _
    typeArguments As Type() _
) As Object
'Применение
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

Параметры

  • name
    Тип: System.String
    Имя элемента, который предполагается вызвать.
  • invokeAttr
    Тип: System.Reflection.BindingFlags
    Битовая маска, составленная из одного или нескольких объектов BindingFlags, которая указывает, как производится поиск поля или свойства. Тип поиска указывать необязательно.
  • parameterTypes
    Тип: array<System.Type[]
    Массив объектов типа Type, представляющий число, порядок и тип параметров метода, к которому необходимо получить доступ,
    –либо–
    пустой массив объектов типа Type (т.е. Type[] types = new Type[0]), если требуется получить метод, у которого нет параметров.
  • args
    Тип: array<System.Object[]
    Любые аргументы, необходимые данному элементу.
  • culture
    Тип: System.Globalization.CultureInfo
    Объект CultureInfo, представляющий используемые языковые стандарты глобализации, которые могут понадобиться для выполнения преобразований, зависящих от языковых стандартов, например, для преобразования числа из формата String в формат Double,
    –либо–
    nullссылка null (Nothing в Visual Basic) , для использования объекта 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);
}

Разрешения

См. также

Ссылки

PrivateObject Класс

PrivateObject - члены

Invoke - перегрузка

Microsoft.VisualStudio.TestTools.UnitTesting - пространство имен