Взгляните на этот пост: Таинственные способы использования ключевого слова params в C #
Обратите внимание, что спецификация языка предпочитает нормальную форму над расширенной формой: она рассматривает расширенную формутолько если обычная форма не применяется.
Кажется, что у вас есть два основных варианта, если вы хотите придерживаться типа object
:
[DataTestMethod]
[DataRow("input1", new object[] { new object[]{ "input2" } })]
public void Test1(string input1, object[] input2)
{
}
или (не будет работать, читайте правку ниже)
[DataTestMethod]
[DataRow("input1", "input2")]
public void Test1(string input1, object[] input2)
{
}
Редактировать : Как указано derekantrican , указано ключевое слово params
в конструкторе DataRowAttribute :
public DataRowAttribute (object data1, params object[] moreData);
Это означает, что для использования конструктора Test1
, как указано в вопросе, object[]
должен быть внутри другого object[]
, как в моемпервый пример, тогда как второй пример не будет работать, так как string
не будет совпадать с подписью object[]
.