See here:
You need to cast your object to IList<object>
This works:

private void RunScript(List<Point3d> Pnts, List<Vector3d> Tngnt, ref object C, ref object L, ref object D)
{
Rhino.NodeInCode.ComponentFunctionInfo TanCurveInfo = Rhino.NodeInCode.Components.FindComponent("TangentCurve");
System.Delegate TanCurve = TanCurveInfo.Delegate;
IList<object> results = (IList<object>) TanCurve.DynamicInvoke(Pnts, Tngnt, 0.5, 3);
C = results[0];
L = results[1];
D = results[2];
}