我的工作是从.NET 3.5访问CPRBA服务器应用程序。在评估了IIOP.Net(未定义状态)等产品和VisiBroker(昂贵)之类的产品之后,我想“自己动手”并在C ++上编写.Net-Wrapper - Stubs生成了我的Omniidl(Omniorb IDL到C ++生成器) )。这意味着围绕非托管C ++代码编写某种托管代码层(CLI)。
我的问题是:有没有人在这个主题上有经验?老实说,我不知道怎么做最好的方法。现在我计划为每个非托管类创建一个托管类,每个托管类本身都有一个非托管类实例的成员,这个实例不是垃圾回收的。这是正确的做法吗?还是我走错了路?
提前致谢!
答案 0 :(得分:1)
根据我的经验,这是解决此问题的一种方法 - 为每个非托管类编写一个包装器.NET类。您应该考虑使用代码生成,这样您就不需要编写大量代码。
另一个选择是围绕常见功能创建.NET包装器 - 您可以通过使用外观来减少一些工作 - 如果您有一个类,您需要单个操作或一组操作,您可以创建一个。管理所有这些的.NET类。