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);
}
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.VisualStudio.TestTools.UnitTesting - пространство имен