没有托管代码的xml序列化?

时间:2011-08-01 10:34:25

标签: c++ xml xml-serialization command-line-interface managed

是否有可能在没有托管代码(cli)的情况下使用xmlwriter(xmlserialization)?

using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::Xml::Serialization;

我的XML序列化托管代码:

void TXML_Interface::LoadXML( String^ filename )
{
XmlSerializer^ serializer = gcnew XmlSerializer( TTEST::typeid );

FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
XmlReader^ reader = gcnew XmlTextReader( fs );

m_test = dynamic_cast<TTEST^>(serializer->Deserialize( reader ));
}

2 个答案:

答案 0 :(得分:1)

是和否。

是的,可以在没有托管代码的情况下进行XML maniuplation(包括序列化) - 我通常使用MSXML执行此操作,但是有多种方法可以在C ++中执行xml序列化(我不是真正的C ++但谷歌几乎肯定是第一个看的地方。)

但是,这使用的机制与System.Xml.Serialization命名空间中包含的机制不同。不幸的是,.Net中的Xml序列化都是在托管代码中实现的,因此如果要使用它,则需要调用托管代码(例如,使用/clr编译器选项或COM互操作)。 / p>

答案 1 :(得分:1)

也许boost::serialization图书馆正是你要找的。

序列化功能在C ++中相当有限,因此boost::serialization更像是一个框架,使您可以使自己的类可序列化。