是否可以在命令行或通过配置文件为 "InternalsVisibleTo" 添加包?

Is it possible to add packages for "InternalsVisibleTo" at the command line or via a config file?

我们有一些方法 internal 但人们可能需要在测试项目(且仅测试项目)中可见。为此,我们必须在 class 的顶部添加一堆 InternalsVisibleTo 语句。这是一个可以被许多其他项目使用并帮助测试和验证的库,我们希望制作可以在运行时设置可以看到内部结构的包。

这可能吗?

示例(伪代码):

[assembly: InternalsVisibleTo( System.ReadFromCommandLine("package"))]

不,这不可能。 InternalsVisibleTo 等属性的值必须是编译时常量。

An expression E is an attribute_argument_expression if all of the following statements are true:

  • The type of E is an attribute parameter type (Attribute parameter types).
  • At compile-time, the value of E can be resolved to one of the following:
    • A constant value.
    • A System.Type object.
    • A one-dimensional array of attribute_argument_expressions.

添加了粗体字,source