最近一直在想辦法設計一些東西~~
C#擁有Reflection的機制,許多難解的設計都可以很輕鬆的找到方法
但是若得要考慮Native的Code (C++, ..etc native dll) 的時候,就完全傻眼了
我也想了許多辦法~~ 想要在C++做類似Reflection或是直接用坊間的C++Reflection Library或是...etc
其實都不是那麼方便的方法 後來想說COM的IDispatch機制 也是一種Reflection
但是現在C#與COM最快的方式就是RCW (Runtime callable wrapper)
這種方法卻是Early Binding 所以我想要的設計最好是Late Binding的方式 (例如不用P/Invoke而用LoadLibrary)
但最終還是傻眼........用Reflector一直trace微軟寫的程式 從tlbimp.exe trace到System.Runtime.InteropServices裡
有一個class叫TypeLibConverter 果不其它 他就是想辦法從IDispatch的界面 生出Interop的.net assembly
以下有一篇文章有範例code
COM interop理论/实践 - 漫步 | Manbu's Blog
但是不論如何.........還是很不方便 :s
這個設計的難題 還真的困擾我很久很久...:(
沒有留言:
張貼留言