Registration
Registration copied to clipboard
Expanding GetExcelFunctions filter condition to include both ExcelFunctionAttribute and ExcelFunctionDocsAttribute ?
Hi
I raised a issue for a conflict between ExcelFunction and ExcelFunctionDoc attribute as both of them include the same property ExplicitRegistration
https://github.com/Excel-DNA/ExcelDnaDoc/issues/36
My goal is to use the Registration so I can have default parameter value. However in the Registration.CS the following function
stipulates only function with ExcelFunction
attribute will be registered. This seems to be a catch 22 situation for me. I am not if this is a real oversight. And if it indeed is do you want to fix here or in the doc gen solution ( which can not support both attribute at the same time otherwise it will fail with System.Reflection.AmbiguousMatchException)
public static IEnumerable<ExcelFunctionRegistration> GetExcelFunctions()
{
return from ass in ExcelIntegration.GetExportedAssemblies()
from typ in ass.GetTypes()
from mi in typ.GetMethods(BindingFlags.Public | BindingFlags.Static)
where mi.GetCustomAttribute<ExcelFunctionAttribute>() != null
select new ExcelFunctionRegistration(mi);
}
Thank you very much casbby
I still need to update the ExcelDnaDoc library, as you point out.
But for getting all the eligible functions from the Registration utility, I think you can just make your own function that enumerates them.
public static IEnumerable<ExcelFunctionRegistration> GetExcelFunctions()
{
return from ass in ExcelIntegration.GetExportedAssemblies()
from typ in ass.GetTypes()
from mi in typ.GetMethods(BindingFlags.Public | BindingFlags.Static)
where mi.GetCustomAttribute<ExcelFunctionAttribute>() != null ||
mi.GetCustomAttribute<ExcelFunctionDocAttribute>() != null
select new ExcelFunctionRegistration(mi);
}