Question

Je voudrais transmettre certaines données d'une instance d'un objet à son attribut, et j'avoir des ennuis inderstanding comment la mettre en œuvre. Voici un exemple:

[AuthenticateAttribute]
public class MyController: Controller
{
    UserInfo info;
}

L'idée est que par exemple AuthenticateAttribute peuplerait l'instance UserInfo.

Je veux passer référence à info à une instance de AuthenticateAttribute et éliminer ainsi un fort couplage entre l'attribut et la classe particulière MyController.

Est-ce possible?

Était-ce utile?

La solution

L'attribut lui-même ne devrait pas avoir le champ UserInfo OMI. Gardez à l'esprit qu'il y aura une instance de l'attribut pour le type il est appliqué à -. Pas un par exemple de ce type

Si vous pouviez donner un exemple plus complet (indiquant le code, il est appliqué à) nous pourrions être en mesure d'aider plus ...

Autres conseils

La collection ViewData du contrôleur est accessible à partir de l'attribut et vous pouvez ajouter votre objet InfoUtil et alors l'accès dans les acions du contrôleur. Vous pouvez également utiliser le modèle typé contenant UserInfo. Ce scénario est décrit ici obtenir la permission de Autorisez Attribut

Modification des champs de type dans l'attribut qui lui est appliqué est pas courant et vous devez être très prudent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top