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


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

Параметры

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

Безопасность платформы .NET Framework

См. также

Ссылки

PrivateObject Класс

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

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