public static Type[] GetArgumentTypes(object[] arguments)
{
if (arguments.Length == 0) return DispatcherKey.NoArguments;
Type[] types = new Type[arguments.Length];
for (int i = 0; i < types.Length; ++i)
{
types[i] = GetObjectTypeOrNull(arguments[i]);
}
return types;
}