簡體   English   中英

C#動態索引器

[英]C# Dynamic indexer

有人知道是否可以通過索引器使用動態lang功能在CLR對象上調用方法? 例如,我可以在javascript中輕松完成myClrObj["SuperMethod"] ()

預先感謝。

可能有更好的方法,但我知道如何做的一種方法是:

  • 創建一個繼承自DynamicObject的類
  • 覆蓋通過索引器捕獲訪問的合適方法
  • 構造並緩存與通過提供的索引器參數找到的方法對應的委托
  • 提供一個擴展方法,使您的對象看起來是動態的,並實例化正確的DynamicObject特化。

    dynamic obj = myObj.AsIndexedObj(); obj["Do"]();

您可以使用nuget提供的opensource Dynamitey ,它包裝了DLR API,使得通過名稱動態調用方法變得更加簡單,適用於動態和poco對象。 比poco對象的反射更快。

Dynamic.InvokeMember(myClrObj,"SuperMethod")

暫無
暫無

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

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