我的应用程序分为两部分。一个是C#可执行文件,是前端UI;另一个是C++动态链接库,主要是底层操作。我的应用程序创建和管理许多对象实例,其中每个C++对象实例都有一个相应的C#对象实例。我可以使用哪些技术或库来确保C#和C++部分的对象以及这些对象中的数据在运行时始终保持同步?修改一个对象实例中的一个成员应该更新相应的对象实例。
谢谢!
编辑:澄清一下我所说的“保持对象同步”的含义。
谢谢!
编辑:澄清一下我所说的“保持对象同步”的含义。
不太清楚它是否能解决问题,但您考虑过使用Managed C++吗?我曾经非常成功地将我的C++代码编译为Managed C++,然后使用托管扩展创建直接使用底层C++数据的.NET类。这样,只有一个数据副本。
可能并不适用于所有情况(我并没有通过任何方式测试其极限),但我发现它可以节省很多时间。由于Managed C++是一个合适的.NET语言,因此从C#方面使用的结果很干净,没有通常需要解决的奇怪或特殊情况。
(另一种类似的方法是使用SWIG (http://www.swig.org/) 为您生成包装器。我听说它易于使用且有效,但我自己没有使用过。)