生成的Shim不包含方法的泛型重载(它们的类型被约束为struct)

时间:2016-10-25 09:11:31

标签: c# generics microsoft-fakes shim

我正在使用Microsoft fakes来测试使用第三方程序集的代码库。 我们的代码调用一个具有几个非泛型重载的类的静态泛型方法。 像这样:

ILookupResult Serivce.Lookup<T>(int code);
ILookupResult Service.Lookup(Type type,int code);

问题是生成的填充程序为每个非泛型方法都有一个条目,如下所示:

ShimService.LookupTypeInt32

但是没有通用方法的恩赐,我也不知道为什么会这样。

更新1:值得一提的是:

  • 我无法为此第三方程序集生成存根 禁用存根生成。
  • 生成其他通用方法。

更新2 :现在我知道通过将Fake节点的Diagnostic属性设置为true来解决问题。它说&#34;不支持的约束类型&#34;这使我更好地了解界面,我注意到T应该是struct:

 ILookupResult Serivce.Lookup<T>(int code) where T:struct;

现在问题是为什么在垫片生成中不支持struct?

0 个答案:

没有答案