in sdk/Sdk.Generators/FunctionExecutor/FunctionExecutorGenerator.Parser.cs [25:63]
internal ICollection<ExecutableFunction> GetFunctions(IEnumerable<IMethodSymbol> methods)
{
var functionList = new List<ExecutableFunction>();
foreach (IMethodSymbol method in methods.Where(m=>m.DeclaredAccessibility == Accessibility.Public))
{
_context.CancellationToken.ThrowIfCancellationRequested();
var methodName = method.Name;
var methodParameterList = new List<string>();
foreach (IParameterSymbol parameterSymbol in method.Parameters)
{
var fullyQualifiedTypeName = parameterSymbol.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
methodParameterList.Add(fullyQualifiedTypeName);
}
var defaultFormatClassName = method.ContainingSymbol.ToDisplayString();
var fullyQualifiedClassName = method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
var function = new ExecutableFunction
{
EntryPoint = $"{defaultFormatClassName}.{method.Name}",
ParameterTypeNames = methodParameterList,
MethodName = methodName,
ShouldAwait = IsTaskType(method.ReturnType),
IsReturnValueAssignable = IsReturnValueAssignable(method),
IsStatic = method.IsStatic,
ParentFunctionClassName = defaultFormatClassName,
ParentFunctionFullyQualifiedClassName = fullyQualifiedClassName,
Visibility = method.GetVisibility(),
AssemblyIdentity = method.ContainingAssembly.Identity.GetDisplayName(),
};
functionList.Add(function);
}
return functionList;
}