簡體   English   中英

在Web應用程序中使用反射調用方法是否正確

[英]Is it correct to use reflection to call a method in Web Application

我有一種方案,其中數據庫中的方法名要在運行時以某種順序調用。 您認為反射是這里的最佳選擇嗎?

DB表保存在特定點要調用的方法的邏輯。 因為會有多個使用不同方法的類。 基於查詢,我將得到要調用的類名和方法名。

我不太擔心在前端的Web應用程序中使用反射/在后面的.Net代碼中使用反射。

將這些調用移至某些后台服務/ WCF服務更好嗎?

我正在尋找可用的不同選項。

如果進行反射的目的是使應用程序層靈活地進行動態方法調用,那么這是有道理的。

請注意,並非所有非功能性要求都可以滿足,並且某些架構原理相互矛盾。 在這種情況下, 性能和靈活性就是兩個極端,更大的靈活性將對性能產生影響。

回到您的方案,可以確定為什么需要反射,如果絕對必須這樣做(不要使其變得不必要地復雜),則可以確定建議 ,您需要考慮其他策略,例如對反射調用進行 緩存,對響應進行緩存等,以確保性能。影響最小化。

通過電話發送!

  1. 如果它是一組封閉的操作,則最好使用枚舉和切換用例。

  2. 避免在與用戶輸入非常接近的任何事物上進行反思,以避免某種形式的注入攻擊

  3. 如果可以,請完全避免反射...如果不能:

    3.1。 檢查數據庫值。

    3.2。 考慮在沙箱中運行方法,並且只能獲得經過消毒的結果。

PS主要是在考慮復雜的解決方案時,有一個更簡單的方法指日可待。 因此,您可能需要查看導致您考慮此解決方案的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM