2017-06-26 51 views
0

我正在制作一个AWS lambda函数,并且当事件发生并且我的lambda函数被调用时,我的函数处理函数的事件对象将具有eventArgs.FirstName和eventArgs.LastName的属性。我猜我必须对EventArgs类做些什么,但是我很困惑。如何使用EventArgs获取事件详细信息?

我的参数究竟应该是什么功能?目前我有(EventArgs e,ILambdaContext上下文)。我如何获得名字&发送给函数的姓氏?

+0

.NET中的所有事件类都应该继承'EventArgs'作为基础。你必须将它转换到你的类来查看属性(查看API的文档)。有关EventArgs的来源,请看这里:http://www.dotnetframework.org/default.aspx/DotNET/ DOTNET/8 @ 0/untmp /惠德比/ REDBITS/NDP/CLR/SRC/BCL /系统/ EventArgs的@ CS/1/EventArgs的@ CS – Kyle

回答

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类都继承。假设这是你已经拥有的东西。

还应加上Amazon.Lambda.Serialization.Json依赖于你的project.json文件是这样的:

"dependencies":{ 


     "Amazon.Lambda.Serialization.Json": "1.0.0" 
    }, 
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目标。

相关问题