我正在制作AWS lambda函数,并且在事件发生并调用我的lambda函数时,我的函数处理程序的事件对象将具有eventArgs.FirstName和eventArgs.LastName的属性。我猜我必须对EventArgs类做些什么,但我自己也很困惑。
我的论点到底应该是什么?目前我有(EventArgs e,ILambdaContext上下文)。我如何获得FirstName&发送到函数的LastName?
答案 0 :(得分:0)
默认情况下,第一个参数是一个流,但只要为其提供默认序列化程序,就可以指定所需的任何类型。您可以通过在方法上添加属性来完成此操作。
在你的情况下:
[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目标。