public static ElementInit ElementInit(MethodInfo addMethod, IEnumerable<Expression> arguments)
{
ContractUtils.RequiresNotNull(addMethod, nameof(addMethod));
ContractUtils.RequiresNotNull(arguments, nameof(arguments));
ReadOnlyCollection<Expression> argumentsRO = arguments.ToReadOnly();
RequiresCanRead(argumentsRO, nameof(arguments));
ValidateElementInitAddMethodInfo(addMethod, nameof(addMethod));
ValidateArgumentTypes(addMethod, ExpressionType.Call, ref argumentsRO, nameof(addMethod));
return new ElementInit(addMethod, argumentsRO);
}