【问题标题】:How do I get started writing a .NET-wrapper around C++ Omniorb-stubs?如何开始围绕 C++ Omniorb-stub 编写 .NET 包装器?
【发布时间】:2010-04-26 08:37:30
【问题描述】:

我的工作是从 .NET 3.5 访问 CORBA 服务器应用程序。在评估了像 IIOP.Net(未定义状态)和 VisiBroker(昂贵)这样的项目之后,我想“自己”完成它并围绕 C++ 编写一个 .NET-Wrapper-Stubs 生成了我的 Omniidl(Omniorb IDL 到 C++ 生成器)。这意味着围绕非托管 C++ 代码编写某种托管代码 (CLI) 层。

老实说,我不知道如何以最好的方式做到这一点。现在我计划为每个非托管类创建一个托管类。每个托管类本身都有一个非托管类实例的成员,该实例不被垃圾回收。这是正确的方法还是我走错了路?

【问题讨论】:

    标签: .net wrapper managed-c++ corba


    【解决方案1】:

    根据我的经验,这是解决此问题的一种方法 - 为每个非托管类编写一个包装器 .NET 类。您应该考虑使用代码生成,这样您就不需要编写大量代码。

    另一种选择是围绕通用功能创建 .NET 包装器 - 您可以通过使用外观来减少一些工作 - 如果您有多个类需要单个操作或一组操作,您可以创建单个 . NET 类来管理所有这些。

    【讨论】:

    • 感谢您的回答!我还认为“包装一切”会花费太多精力,编写某种外观并因此仅包装所需的方法和结构听起来更合理。代码生成听起来也很有趣:你会碰巧知道有哪些推荐的代码生成器可以完成这项工作吗? :)
    • 您可以使用 Code smith (codesmithtools.com) 来满足您的代码生成需求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2011-06-11
    相关资源
    最近更新 更多