MSFakes 命名约定以匹配通用 class?
MSFakes Naming Convention to match Generic class?
我有一个名为 MyClass
的 class 和一个名为 MyClass<C>
的通用版本。使用假货,我想生成 JUST MyClass<C>
而不是 MyClass
的垫片。我最初尝试过:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyClass!"/>
</ShimGeneration>
</Fakes>
这为 MyClass
而不是 MyClass<C>
生成了垫片。如果我改变!对于 *,它确实匹配 MyClass<C>
。这让我相信我需要使用一些命名约定来匹配 MyClass<C>
。有谁知道is/where我能找到什么?
您在类型上使用重音符加上泛型类型参数的数量。例如:MyClass<T>
将是 1,MyClass<T,U>
将是 2,等等。另请参阅 CLI specification 第 10.7.2 节类型名称和元数编码 .
您还应该将您的命名空间添加为值的一部分。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyNamespace.MyClass`1!"/>
</ShimGeneration>
</Fakes>
我有一个名为 MyClass
的 class 和一个名为 MyClass<C>
的通用版本。使用假货,我想生成 JUST MyClass<C>
而不是 MyClass
的垫片。我最初尝试过:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyClass!"/>
</ShimGeneration>
</Fakes>
这为 MyClass
而不是 MyClass<C>
生成了垫片。如果我改变!对于 *,它确实匹配 MyClass<C>
。这让我相信我需要使用一些命名约定来匹配 MyClass<C>
。有谁知道is/where我能找到什么?
您在类型上使用重音符加上泛型类型参数的数量。例如:MyClass<T>
将是 1,MyClass<T,U>
将是 2,等等。另请参阅 CLI specification 第 10.7.2 节类型名称和元数编码 .
您还应该将您的命名空间添加为值的一部分。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="XXXX" Version="#.##.###"/>
<ShimGeneration>
<Clear/>
<Add FullName="MyNamespace.MyClass`1!"/>
</ShimGeneration>
</Fakes>