/// <summary> /// Returns the overloads for a normal .NET type /// </summary> private OverloadResult[] GetClrOverloads() { Type clrType = ClrModule.GetClrType(_type); // just a normal .NET type... var ctors = clrType.GetConstructors(BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance); var overloads = new OverloadResult[ctors.Length]; for (int i = 0; i < ctors.Length; i++) { // TODO: Docs, python type name var parameters = ctors[i].GetParameters(); bool hasContext = parameters.Length > 0 && parameters[0].ParameterType == typeof(CodeContext); var paramResult = new ParameterResult[hasContext ? parameters.Length - 1 : parameters.Length]; for (int j = 0; j < paramResult.Length; j++) { var curParam = parameters[j + (hasContext ? 1 : 0)]; // TODO: Docs paramResult[j] = BuiltinFunctionOverloadResult.GetParameterResultFromParameterInfo(curParam); } overloads[i] = new SimpleOverloadResult(paramResult, PythonType.Get__name__(_type), ""); } return(overloads); }
/// <summary> /// Returns the overloads for a normal .NET type /// </summary> private OverloadResult[] GetClrOverloads() { Type clrType = ClrModule.GetClrType(_type); // just a normal .NET type... var ctors = clrType.GetConstructors(BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance); var overloads = new OverloadResult[ctors.Length]; for (int i = 0; i < ctors.Length; i++) { // TODO: Docs, python type name var parameters = ctors[i].GetParameters(); bool hasContext = parameters.Length > 0 && parameters[0].ParameterType == typeof(CodeContext); var paramResult = new ParameterResult[hasContext ? parameters.Length - 1 : parameters.Length]; for (int j = 0; j < paramResult.Length; j++) { var curParam = parameters[j + (hasContext ? 1 : 0)]; // TODO: Docs paramResult[j] = BuiltinFunctionOverloadResult.GetParameterResultFromParameterInfo(curParam); } overloads[i] = new SimpleOverloadResult(paramResult, PythonType.Get__name__(_type), ""); } return overloads; }