Cela peut être une question stupide que je peux voir la raison de la sécurité pour que cela arrive comme il le fait ...d'accès dans un assemblage différent C#
J'ai un projet de licence de C#, ce qui a une classe qui a une méthode qui génère mes clés de licence. J'ai rendu cette méthode privée car je ne veux pas que quelqu'un d'autre puisse appeler ma méthode pour des raisons évidentes
La prochaine chose que je veux faire est d'avoir mon interface utilisateur, qui est dans un autre projet C# qui fait référence la licence dll est la seule autre chose qui peut accéder à cette méthode en dehors de lui-même, est-ce possible ou dois-je la déplacer dans le même projet pour que tout compile vers la même DLL et que je puisse accéder à ses membres?
LicensingProject
-LicensingClass
--Private MethodX (GeneratesLicenseKeys)LicensingProject.UI
-LicensingUiClass
-I veulent être en mesure d'être la seule classe de pouvoir accès MethodX
Il y a une raison pour laquelle le générateur de clé de licence n'est pas seulement dans l'interface utilisateur, c'est parce que la licence fonctionne en générant un hachage sur lui-même et le compare à celui généré par le générateur de licence.
Je préférerais ne pas tous compiler à la DLL car mes utilisateurs finaux n'ont pas besoin du code d'interface utilisateur. Je sais que par bon sens une méthode privée est juste cela. Je suis perplexe.
Je ne pense pas que CLR vous empêchera d'appeler des méthodes privées. Certes, si la méthode a des exigences CAS que vous ne pouvez pas satisfaire, vous ne serez pas en mesure de l'appeler. Tant que vous avez ReflectionPermission, je pense que vous pouvez appeler n'importe quelle méthode privée (qui ne nécessite aucune autre autorisation). Corrigez-moi si je me trompe ... –
ReflectionPermission est ce que je pensais. Sans cela, vous pouvez toujours appeler les membres du public par la réflexion. Mais oui, ce n'est pas la confiance totale qui est nécessaire - sera éditer. –
Merci pour les réponses à Jon et Mehrdad. –