diff --git a/src/Generator/Library.cs b/src/Generator/Library.cs
index 26ba9281..2edca4c0 100644
--- a/src/Generator/Library.cs
+++ b/src/Generator/Library.cs
@@ -253,14 +253,34 @@ namespace CppSharp
/// first parameter has index 1
public static void SetMethodParameterUsage(this ASTContext context,
string className, string methodName, int parameterIndex, ParameterUsage usage)
+ {
+ SetMethodParameterUsage(context, className, methodName, -1, parameterIndex, usage);
+ }
+
+ ///
+ /// Sets the parameter usage for a method parameter.
+ ///
+ /// first parameter has index 1
+ public static void SetMethodParameterUsage(this ASTContext context,
+ string className, string methodName, int parameterCount, int parameterIndex,
+ ParameterUsage usage)
{
if (parameterIndex <= 0 )
throw new ArgumentException("parameterIndex");
var @class = context.FindCompleteClass(className);
- var method = @class.Methods.Find(m => m.Name == methodName);
+
+ Method method;
+
+ if (parameterCount >= 0)
+ method = @class.Methods.Find(m => m.Name == methodName
+ && m.Parameters.Count == parameterCount);
+ else
+ method = @class.Methods.Find(m => m.Name == methodName);
+
if (method == null)
throw new ArgumentException("methodName");
+
if (method.Parameters.Count < parameterIndex)
throw new ArgumentException("parameterIndex");