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

时间:2019-07-23 14:33:05

标签: c# .net asp.net-core .net-core .net-4.7

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

这可能吗?

示例(伪代码):

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

1 个答案:

答案 0 :(得分:2)

否,不可能。像InternalsVisibleTo这样的属性,其值必须是编译时间常数。

  

如果满足以下所有条件,则表达式E attribute_argument_expression

     
      
  • E的类型是属性参数类型(属性参数类型)。
  •   
  • 编译时,可以将E的值解析为以下值之一:      
        
    • 一个恒定值。
    •   
    • 一个System.Type对象。
    •   
    • attribute_argument_expression s的一维数组。
    •   
  •   

添加了粗体source