2017-09-26 4 views
1

J'ai une classe appelée MyClass, et une version générique appelée MyClass. En utilisant des fakes, je veux générer une cale de JustClass MyClass, et pas MyClass. J'ai d'abord essayé:La convention de dénomination de MSFakes correspond à la classe générique?

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="XXXX" Version="#.##.###"/> 
    <ShimGeneration> 
    <Clear/> 
    <Add FullName="MyClass!"/> 
    </ShimGeneration> 
</Fakes> 

Cela a généré des shims pour MyClass, mais pas MyClass. Si je change le! à un *, cela correspond à MyClass. Cela m'amène à croire qu'il y a une convention de nommage que je dois utiliser pour correspondre à MyClass. Est-ce que quelqu'un sait ce que c'est/où je pourrais trouver?

Répondre

1

Vous utilisez le caractère accent grave plus le nombre de paramètres de type générique sur le type. Par exemple: MyClass<T> serait 1, MyClass<T,U> serait 2, etc. Voir aussi CLI specificationSection 10.7.2 Noms de types et codage d'arité.

Vous devez également ajouter votre espace de noms en tant que partie de la valeur.

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"> 
    <Assembly Name="XXXX" Version="#.##.###"/> 
    <ShimGeneration> 
    <Clear/> 
    <Add FullName="MyNamespace.MyClass`1!"/> 
    </ShimGeneration> 
</Fakes> 
+0

Point important sur l'espace de noms. Je l'ai, mais je l'ai retiré pour hâter cette question. –