If not 4.0 you can write a method with Interop libraries for reference to use for checking Name, number and type of args, return type, etc................
[CommandMethod("OpenExcelEarlyBind")]
public void OpenExcelEarlyBind()
{
Microsoft.Office.Interop.Excel.Application exl = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wb = exl.Workbooks.Open(@"C:\Test\ExcelTest.xlsx");
Microsoft.Office.Interop.Excel.Worksheet ws = exl.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
exl.Visible = true;
}
[CommandMethod("OpenExcelLateBind")]
public void OpenExcelLateBind()
{
Type excelType = Type.GetTypeFromProgID("Excel.Application");
object exl = Activator.CreateInstance(excelType);
object wb = exl.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, exl, null);
object[] param = new object[1];
param[0] = @"C:\Test\ExcelTest.xlsx";
wb.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, wb, param);
param = new Object[1];
param[0] = true;
exl.GetType().InvokeMember("Visible", BindingFlags.SetProperty, null, exl, param);
}