【发布时间】:2012-10-18 05:33:39
【问题描述】:
我有一个 C# 应用程序,它从 C++ 应用程序以文本形式接收序列化数据(数据是使用 BOOST 库在 C++ 中序列化的)现在序列化数据实际上是一个对象,我需要将其转换为类似的 .Net 对象.为了实现这一点,我被告知可以将 C++/CLI 组件编写为 dll,它可以反序列化文本数据(使用用于序列化它的相同库)并将其传递回 C# 应用程序。 我没有 C++/CLI 编程经验,但我在 C++ 编程方面没有任何问题。但我不认为 C++/CLI 很难掌握。我的问题是我没有得到关于如何创建 C++/CLI 应用程序将对象传递回 C# 的部分?任何提示、教程、链接将不胜感激
编辑正在发送的对象在 C++ 中是这样的
class person
{
public:
person()
{
}
person(int age) : age_(age)
{
}
int age() const
{
return age_;
}
private:
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & age_;
}
int age_;
};
【问题讨论】:
-
您有多种选择。无论何种语言对其进行序列化,您始终可以在 c# 中反序列化对象。正如您所说的那样,它是文本,您应该可以很容易地在 c# 中做到这一点。对于二进制对象也可以这样做。请提供更多详细信息。
-
是的,它是文本。您能否提一些选项,我知道数据是使用 C++ 中的 BOOST 库序列化的。