奇怪的属性行为
Odd attribute behavior
我对属性有些好奇。我正在使用 xUnit 的 InlineData 属性,它采用对象的参数(params object [])。如果我给它一个数组和一个字符串,一切似乎都很好:
[InlineData(new string[] { "Yada", "Yada yada" }, "Yada yada yada")]
...但是如果我只给它一个数组:
[InlineData(new string[] { "Yada", "Yada yada" })]
...然后我得到这个 error:
An attribute argument must be a constant expression, typeof expression
or array creation expression of an attribute parameter type
可能是什么问题?
我将突出显示错误消息的重要部分
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
参数类型是object[]
所以不能传string[]
.
在第一个示例中,您隐式传递了一个对象数组,一个是字符串数组,另一个是字符串...在第一个示例中,您实际上是在这样做:
[InlineData(new object[]{new string[] { "Yada", "Yada yada" }, "Yada yada yada"})]
在第二个例子中,你可以做到这一点
[InlineData(new object[] { "Yada", "Yada yada" })]
我对属性有些好奇。我正在使用 xUnit 的 InlineData 属性,它采用对象的参数(params object [])。如果我给它一个数组和一个字符串,一切似乎都很好:
[InlineData(new string[] { "Yada", "Yada yada" }, "Yada yada yada")]
...但是如果我只给它一个数组:
[InlineData(new string[] { "Yada", "Yada yada" })]
...然后我得到这个 error:
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
可能是什么问题?
我将突出显示错误消息的重要部分
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
参数类型是object[]
所以不能传string[]
.
在第一个示例中,您隐式传递了一个对象数组,一个是字符串数组,另一个是字符串...在第一个示例中,您实际上是在这样做:
[InlineData(new object[]{new string[] { "Yada", "Yada yada" }, "Yada yada yada"})]
在第二个例子中,你可以做到这一点
[InlineData(new object[] { "Yada", "Yada yada" })]