2017-06-26 85 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目標。

相關問題