Pourquoi ma Méthode d'Extension ne s'affiche pas dans ma classe de test?

J'ai créé une extension de la méthode appelée HasContentPermission sur le System.Security.Principal.IIdentity:

namespace System.Security.Principal
{
    public static class IdentityExtensions
    {
        public static bool HasContentPermission
            (this IIdentity identity, int contentID)
        {
            //I do stuff here
            return result;
        }
    }
}

Et je l'appelle comme ceci:

bool hasPermission = User.Identity.HasPermission(contentID);

Fonctionne comme un charme. Maintenant, je veux de l'unité de test. Pour ce faire, tout ce que je vraiment besoin de faire est d'appeler la méthode d'extension directement, de sorte que:

using System.Security.Principal;

namespace MyUnitTests
{
    [TestMethod]
    public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
    {
        IIdentity identity;
        bool result = identity.HasContentPermission(...

Mais HasContentPermission ne intellisense. J'ai essayé de créer un stub de classe qui hérite de IIdentity, mais cela ne fonctionne pas non plus. Pourquoi?

Ou je suis aller sur ce de la mauvaise façon?

  • Votre syntaxe dans le premier bloc de code est erroné, vous ne pouvez pas définir une méthode dans un espace de noms de champ... Pouvez-vous mettre dans votre code?
  • Êtes-vous sûr de votre projet de test est de référencement à l'assemblée que votre Méthode d'Extension de vie (au lieu de juste l'espace de noms)?
  • J'ai édité la question d'ajouter le code manquant.