我正在製作一個AWS lambda函數,並且當事件發生並且我的lambda函數被調用時,我的函數處理函數的事件對象將具有eventArgs.FirstName和eventArgs.LastName的屬性。我猜我必須對EventArgs類做些什麼,但是我很困惑。如何使用EventArgs獲取事件詳細信息?
我的參數究竟應該是什麼功能?目前我有(EventArgs e,ILambdaContext上下文)。我如何獲得名字&發送給函數的姓氏?
我正在製作一個AWS lambda函數,並且當事件發生並且我的lambda函數被調用時,我的函數處理函數的事件對象將具有eventArgs.FirstName和eventArgs.LastName的屬性。我猜我必須對EventArgs類做些什麼,但是我很困惑。如何使用EventArgs獲取事件詳細信息?
我的參數究竟應該是什麼功能?目前我有(EventArgs e,ILambdaContext上下文)。我如何獲得名字&發送給函數的姓氏?
默認第一個參數是一個流,但你可以指定你想,只要你爲它默認的序列任何類型。您可以通過在方法上添加屬性來完成此操作。
你的情況:
[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"
},
一個潛在的解決方案是創建一套新的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目標。
.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