ReflectorInvokeMethod(Object, String, ReflectionWays, Object) Method

Invokes an instance method of an object represented by the specified methodName.

Definition

Namespace: KGySoft.Reflection
Assembly: KGySoft.CoreLibraries (in KGySoft.CoreLibraries.dll) Version: 8.1.0
C#
public static Object? InvokeMethod(
	Object instance,
	string methodName,
	ReflectionWays way,
	params Object?[]? parameters
)

Parameters

instance  Object
An instance whose method is about to be invoked.
methodName  String
The name of the method to be invoked.
way  ReflectionWays
The preferred reflection way. TypeDescriptor way is not applicable for invoking methods.
parameters  Object
The parameters to be used for invoking the method.

Return Value

Object
The return value of the method.

Remarks

methodName can refer public and non-public methods. To avoid ambiguity this method gets all of the methods of the same name and chooses the first one for which the provided parameters match.

If you already have a MethodInfo instance use the InvokeMethod(Object, MethodInfo, Type, ReflectionWays, Object) method for better performance.

If you are not sure whether a method with the specified methodName exists, then you can use the TryInvokeMethod methods instead.

If way is Auto, then the DynamicDelegate way will be used, except when the .NET Standard 2.0 version of the KGySoft.CoreLibraries assembly is referenced and the method belongs to a value type (struct) or has ref/out parameters, in which case the SystemReflection way will be used.

  Tip

To preserve the changes of a mutable value type embed it into a variable of Object type and pass it to the instance parameter of this method.

See Also