2017-06-26 1 views
0

Je crée une fonction AWS lambda et je sais que lorsqu'un événement se produit et que ma fonction lambda est invoquée, l'objet événement de mon gestionnaire de fonctions aura les propriétés eventArgs.FirstName et eventArgs.LastName. Je devine que je dois faire quelque chose avec la classe EventArgs, mais je suis confus moi-même.Comment obtenir les détails d'un événement en utilisant EventArgs?

Quels devraient être mes arguments pour cette fonction? Actuellement, j'ai (EventArgs e, contexte ILambdaContext). Comment puis-je obtenir le Prénom & qui est envoyé à la fonction?

+0

Toutes les classes d'événements dans .NET doivent hériter de 'EventArgs' comme base. Vous devez le diffuser dans votre classe pour voir les propriétés (consultez les documentations pour votre API.) Pour la source d'EventArgs, regardez ici: http://www.dotnetframework.org/default.aspx/DotNET/ DotNET/8 @ 0/untmp/whidbey/REDBITS/ndp/clr/src/BCL/Système/EventArgs @ cs/1/EventArgs @ cs – Kyle

Répondre

0

S'il vous plaît lire le documentation

Le premier argument par défaut est un flux, mais vous pouvez spécifier un type que vous voulez tant que vous fournissez un sérialiseur par défaut pour elle. Vous faites cela en ajoutant un attribut sur la méthode.

Dans votre cas:

[LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] 
pubic void Foo(UserEventArgs eventArgs, ILambdaContext context) { 
//do something 
} 

[Serializable()] 
public class UserEventArgs : EventArgs { 
    public string FirstName {get; set;} 
    public string LastName {get; set;} 
} 

BTW, vous ne devez pas utiliser/hériter de la classe EventArgs du tout. En supposant que c'est quelque chose que vous avez déjà.

ajouter également une dépendance sur Amazon.Lambda.Serialization.Json dans votre fichier project.json comme ceci:

"dependencies":{ 


     "Amazon.Lambda.Serialization.Json": "1.0.0" 
    }, 
0

Une solution possible est de créer un nouvel ensemble de EventArgs, comme ceci:

public class NameEventArgs: System.EventArgs 
{ 
    String FirstName {get; set;} 
    String LastName {get; set;} 
} 

Ensuite, créez un délégué d'événement:

public delegate void NameEventHandler(object sender, NameEventArgs e); 

instancier le délégué de l'événement:

public event NameEventHandler SomeEvent; 

Définir la méthode qui va faire quelque chose lorsque l'objectif est terminé:

public void EventHandler(object sender, NameEventArgs e) 
{ 
    // do something 
} 

Attribuer cette méthode à l'événement:

this.SomeEvent += this.EventHandler; 

Si vous utilisez ce modèle, vous devriez être capable d'ajouter plus de valeurs à l'objet NameEventArgs pour aider à atteindre vos objectifs lambda.