我有一个名为MyClass的类,以及一个名为MyClass的通用版本。使用假货,我想生成一个JUST MyClass的垫片,而不是MyClass。我最初尝试过:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyClass!"/>
</ShimGeneration>
</Fakes>
这为MyClass生成了填充程序,但不是MyClass。如果我换了!到*,它确实匹配MyClass。这让我相信我需要使用一些命名约定来匹配MyClass。有谁知道它是什么/在哪里可以找到?
答案 0 :(得分:1)
您使用严重重音字符加上类型上的泛型类型参数的数量。例如:MyClass<T>
为1,MyClass<T,U>
为2,等等。另请参见CLI specification 第10.7.2节类型名称和arity编码。
您还应该将名称空间添加为值的一部分。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyNamespace.MyClass`1!"/>
</ShimGeneration>
</Fakes>