星期五, 5月 25, 2007

[COM interop] TypeLibConverter



最近一直在想辦法設計一些東西~~



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



這個設計的難題 還真的困擾我很久很久...:(





沒有留言: