我目前正在構建一個C++/cli互操作庫。該庫將被c#和vb.net應用程序使用,並且我想利用.Net 4動態類型。我有一個配置模塊,使用動態成員訪問來引用配置鍵,這在c#中工作正常,但給我在c + +/cli(並非完全意外)的麻煩 有什麼方法可以在C++/CLI中使用此庫(例如通過直接調用TryGetMember()或其他)?如果C++/CLI庫將動態配置傳遞給用C#編寫的派生類,那麼C#仍然能夠使用動態成員訪問嗎?請注意,基類是在C++/cli中定義的,所以我無法使用動態關鍵字。 (或者我會?)在C++/CLI中使用的動態C#對象
回答
有一個開源的庫,ImpromptuInterface(通過nuget發現),當涉及到dynamic關鍵字時,它簡化了c#編譯器使用的api,我假設它在C++/cli中工作,因爲它們只是靜態的c#功能。我知道它適用於F#,它也沒有DLR支持。
這是一個list動態調用它可以做的。
C#/ VB動態類型由編譯器轉換爲普通類型和方法調用。生成的IL有點複雜,但不是特別的。您肯定可以編寫生成類似IL的C++/CLI代碼。
也許編寫C++/CLI代碼的最簡單方法是編寫在C#中使用動態類型的代碼,然後使用Reflector將程序集反編譯爲C++/CLI。
請不要使用短語「託管C++」,除非您實際上正在討論.NET 1.x.目前的技術是C++/CLI。 – 2012-02-15 16:55:41
感謝您的糾正 - 我沒有意識到這一點。我編輯了我的答案。 – 2012-02-15 18:35:58
這對我的目的來說似乎有點笨拙,我也沒有反射器 – 2012-02-17 15:44:18
- 1. 動態在C++中複製的對象
- 2. 在C++中動態創建對象?
- 3. 如何在boo(Rhino DSL)中使用c#動態對象?
- 4. 在C#中使用動態屬性創建一個對象#
- 5. Objective-c中的動態對象屬性
- 6. 動態填充C中的對象#
- 7. c中有變量的動態對象#
- 8. 動態創建C中的對象
- 9. C#Json動態對象
- 10. 動態加載對象c#
- 11. 動態創建C#對象
- 12. C++動態對象施工
- 13. 在C中使用對象#
- 14. 在C#.NET中使用C++中的COM對象返回對象[]
- 15. .NET 4.0動態對象靜態使用?
- 16. 如何用C#動態創建對象?
- 17. C#動態引用集合對象嗎?
- 18. XML動態內容在C#對象
- 19. XML轉換爲動態對象在C#
- 20. 轉換動態對象來動態類型的在c#
- 21. C#在靜態對象中使用塊使用
- 22. 動態加載並使用COM對象在C#
- 23. 在靜態類中使用C#中的全局對象
- 24. 如何動態創建使用反射的通用C#對象?
- 25. 使用ItemsControl對象在WPF應用程序中動態滾動
- 26. 對動態嵌套對象使用eval
- 27. .Net 4使用LinqToSql的動態對象?
- 28. 使用動態的ComObject轉儲對象?
- 29. 在C#中動態或不動態地對2個對象[,]進行排序
- 30. Silverlight中的動態對象
這看起來很有前途,謝謝領先。我將在今天晚些時候進行整合 – 2012-02-17 15:47:18