2017-01-27 1 views
0

Après avoir tiré cette base de code:'FromHeaderAttribute' est pas une classe d'attribut

https://github.com/RedRiverSoftware/FromHeaderAttribute

après avoir lu ceci:

https://river.red/binding-to-and-validating-http-headers-with-web-api-2/

Je suis en train de changer ceci:

public IHttpActionResult EchoHeaders([RedRiver.FromHead.FromHeader]StandardHeaders headers) 

à ceci:

public IHttpActionResult EchoHeaders([FromHeader]StandardHeaders headers) 

De toute évidence, il me fallait ajouter à la partie supérieure de la classe contrôleur:

using FromHeaderAttribute.Sample.Models; 

Mais je reçois cette erreur:

'FromHeaderAttribute' is not an attribute class. 

Cependant, en regardant le code (que je n'ai pas changé) la classe 'FromHeaderAttribute' hérite clairement 'ParameterBindingAttribute' qui hérite 'System.Attribute'. Qu'est-ce qui me manque pour pouvoir définir des attributs qui peuvent être utilisés comme attributs de paramètres sans spécifier leur espace de noms entier - tout comme des attributs tels que 'FromUri' et 'FromBody'?

Répondre

0

Il s'avère que nommer une classe 'FromHeader' et essayer de l'utiliser comme attribut de paramètre ne sera pas reconnu. J'ai essayé ceci avec un certain nombre de combinaisons différentes de noms de fichiers, de classes et d'espaces de noms et cela ne fonctionne tout simplement pas. Le nom de la classe d'attribut doit être autre chose que FromHeader.