2010-04-26 43 views
2

我的工作是從.NET 3.5訪問CPRBA服務器應用程序。在評估像IIOP.Net(未定義狀態)之類的項目和像VisiBroker(昂貴)之類的產品之後,我想「自己做」,並圍繞C++編寫一個.Net-Wrapper - 存根生成了我的Omniidl(Omniorb IDL到C++生成器)。這意味着圍繞非託管C++代碼編寫一些託管代碼(CLI)層。我該如何開始編寫圍繞C++ Omniorb存根的.Net包裝器

我的問題是:有沒有人在這個主題的經驗?我真的不知道如何做到最好。現在我打算爲每個非託管類創建一個託管類,每個託管類本身都有一個非託管類實例的成員,這個實例不是垃圾收集的。這是做這件事的正確方法還是我走錯了路?

在此先感謝!

回答

1

從我的經驗來看,這是解決這個問題的一種方法 - 對於每個非託管類編寫一個包裝.NET類。你應該考慮使用代碼生成,這樣你就不需要編寫很多代碼。

另一個選擇是圍繞常用功能創建.NET包裝 - 您可以通過使用外觀來減少一些工作 - 如果您有多個需要單個操作的類或一組操作,您可以創建一個.NET類管理所有這些類。

+0

謝謝你的回答! 我也認爲「包裝一切」會花費太多精力,編寫某種外觀,因此只包裝所需的方法和結構聽起來更合理。 代碼生成的聲音也是互動的:你會碰巧知道任何可以做這項工作的可推薦的代碼生成器嗎? :) – Superfisi 2010-04-29 12:25:31

+0

您可以使用Code smith(http://www.codesmithtools.com/)來生成您的代碼 – 2010-04-29 16:47:29