如何使用EventArgs获取活动详情?

时间:2017-06-26 16:05:28

标签: c# events event-handling aws-lambda eventargs

我正在制作AWS lambda函数,并且在事件发生并调用我的lambda函数时,我的函数处理程序的事件对象将具有eventArgs.FirstName和eventArgs.LastName的属性。我猜我必须对EventArgs类做些什么,但我自己也很困惑。

我的论点到底应该是什么?目前我有(EventArgs e,ILambdaContext上下文)。我如何获得FirstName&发送到函数的LastName?

2 个答案:

答案 0 :(得分:0)

请阅读documentation

默认情况下,第一个参数是一个流,但只要为其提供默认序列化程序,就可以指定所需的任何类型。您可以通过在方法上添加属性来完成此操作。

在你的情况下:

[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;}
}
顺便说一下,你根本不必使用/继承EventArgs类。假设这是你已经拥有的东西。

还在project.json文件中添加对Amazon.Lambda.Serialization.Json的依赖,如下所示:

"dependencies":{


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

答案 1 :(得分:0)

一个可能的解决方案是创建一组新的EventArgs,如下所示:

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

然后,创建一个事件委托:

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

实例化事件委托:

public event NameEventHandler SomeEvent;

定义在目标完成时将执行某些操作的方法:

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

将该方法分配给事件:

this.SomeEvent += this.EventHandler;

如果您使用此模型,您应该能够向NameEventArgs对象添加更多值,以帮助实现您的lambda目标。