【问题标题】:MoledTypeAttribute on specific type generates moles and stubs for all types in the target type's assembly特定类型上的 MoledTypeAttribute 为目标类型程序集中的所有类型生成痣和存根
【发布时间】:2012-01-14 15:34:23
【问题描述】:

我希望,例如,[assembly: MoledType(typeof(System.DateTime))] 只会生成带有System.Moles.MDateTimemscorlib.Moles 程序集,但生成的程序集包含mscorlib 中的所有类型。这是正常的还是记录在案的行为(我在http://research.microsoft.com/en-us/projects/pex/molesmanual.pdf 中找不到答案)?

【问题讨论】:

    标签: moles


    【解决方案1】:

    是的,这是预期的功能。 mscorlib 是预编译的。在预编译发布之前,第一次 Moles 编译花了很长时间。一个快速的编译时间被交换为无法选择性地摩尔框架类型。因为 moole 程序集基本上是一个巨大的包装器,其中充满了对 mscorlib 的 Func 调用,所以提供框架范围的覆盖对性能的影响很小,因此是可以接受的交易。

    【讨论】:

    • 我可以欣赏 mscorlib 是一个特殊情况的预编译,但我也看到了其他程序集,包括我自己的程序集(mscorlib 显然不是最好的例子——你是说我应该能够有选择地从非框架程序集中选择类型?)。
    【解决方案2】:

    您通常可以在 .moles 文件中提供许多过滤器选项(您发现 mscorlib 是一个例外,Mike 也提到过)。例如,您可以分别使用 StubGeneration 或 MoleGeneration 元素禁用存根或鼹鼠类型生成。要获得更多控制,您还可以将 Types 元素与 Add、Remove 和 Clear 元素结合使用。

    Moles 参考手册在第 12 和 13 页上详细介绍了过滤存根类型。不幸的是,它没有提到过滤 Mole 类型,但过程基本相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2017-01-06
      • 2016-06-11
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      相关资源
      最近更新 更多