Is it possible to alias array type in c#?

You could define a class (or struct) called ResourceMessageParamsType and define implicit operators for casting to and from object[].

struct ResourceMessageParamsType
{
    private object[] value;

    private ResourceMessageParamsType(object[] value)
    {
        this.value = value;
    }

    public static implicit operator object[](ResourceMessageParamsType t)
    {
        return t.value;
    }

    public static implicit operator ResourceMessageParamsType(object[] value)
    {
        return new ResourceMessageParamsType(value);
    }
}

Simply put, you can't "alias" array types.

You can work around it by encapsulating things in a struct, but that doesn't answer your question.


Update:

From the ECMA standard,

using-alias-directive:

using identifier = namespace-or-type-name ;

which clearly doesn't say anything about arrays being permitted.

(See page 100 for how namespace-or-type-name is defined.)