You can't use the existing Action delegates with params, but you can declare your own delegate that way:
public delegate void ParamsAction(params object[] arguments)
Then:
// Note that this doesn't have to have params, but it can do
public void Foo(object[] args)
{
// Whatever
}
...
ParamsAction action = Foo;
action("a", 10, 20, "b");
Of course you can create an Action<object[]> for your existing method - but you lose the params aspect of it, as that's not declared in Action<T>. So for example:
public static void Foo(params object[] x)
{
}
...
Action<object[]> func = Foo;
func("a", 10, 20, "b"); // Invalid
func(new object[] { "a", 10, 20, "b" }); // Valid
So if you're calling the delegate from code which wants to use params, you need a delegate type which includes that in the declaration (as per the first part). If you just want to create a delegate which accepts an object[], then you can create an instance of Action<object[]> using a method which has params in its signature - it's just a modifier, effectively.