Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 19548|Répondre: 0

[Source] Utilisez InternalsVisibleTo pour ajouter « ami assemblage » à l’assembleur

[Copié le lien]
Publié sur 06/02/2017 14:28:57 | | |

Le mot-clé interne en C# peut rendre les méthodes, champs ou attributs marqués disponibles uniquement dans l’assemblage courant, alors que se passerait-il si d’autres assemblages devaient utiliser cette méthode interne ? .NET propose un moyen d’accomplir cette fonction similaire à la classe ami en C++, qui consiste à utiliser InternalsVisibleTo.

C’est courant lors des tests, et un autre projet est nécessaire pour tester la fonctionnalité marquée par la méthode interne dans le projet, donc avec InternalsVisibleTo, nous n’avons pas besoin de modifier une méthode qui ne devrait pas être publique à publique pour faire des tests unitaires.

Il y a encore quelques éléments à surveiller lors de l’utilisation d’InternalsVisibleTo, notamment PublicKey qui n’est pas facile à comprendre, parlons de la façon d’utiliser ce IntralsVisibleTo :

Expliquons d’abord le postulat : le Project1 est un projet fonctionnel, et le Project1.Test (nom de l’assemblage : Project1.Test.dll) est un projet test pour le Project1.

1. Ouvrez le fichier Assembly.cs de Project1 et ajoutez cette phrase à la fin du fichier :


PublicKey=****** doit être remplacé par la clé publique Project1.Test.dll ; pour savoir comment obtenir la PublicKey, veuillez consulter la section Notes à la fin de l’article.

2. Vérifier cet espace de noms : System.Runtime.CompilerServices est ajouté à la référence d’espace de noms du Assembly.cs, car InternalsVisibleTo se trouve dans l’espace de noms System.Runtime.CompilerService.

Notes:

1. Comment obtenir une Clé Publique ?

R : Sous la ligne de commande, utilisez sn -tp Project1.Test.dll pour voir PublicKey et PublicKeyToken

2. Si Project1 est un projet à nom fort, alors InternalsVisibleTo doit spécifier une Clé Publique, donc Project1.Test doit également utiliser une signature forte pour utiliser correctement InternalsVisibleTo, sinon la compilation provoquera une erreur si Project1 n’utilise pas de signature forte, Ensuite, Project1.Test n’a pas besoin d’utiliser de signatures fortes, et lorsqu’on utilise InternalsVisibleTo, seul le nom de l’assemblage est requis, et il n’est pas nécessaire de définir PuklicKey.




Précédent:InternalsVisibleToAttribute expose le membre interne à l’assemblage ami spécifié
Prochain:[Mythe] La méthode Init de l’objet HttpApplication ne sera-t-elle exécutée qu’une seule fois ?
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com