是否有可能在没有托管代码(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 ));
}
答案 0 :(得分:1)
是和否。
是的,可以在没有托管代码的情况下进行XML maniuplation(包括序列化) - 我通常使用MSXML执行此操作,但是有多种方法可以在C ++中执行xml序列化(我不是真正的C ++但谷歌几乎肯定是第一个看的地方。)
但是,这使用的机制与System.Xml.Serialization
命名空间中包含的机制不同。不幸的是,.Net中的Xml序列化都是在托管代码中实现的,因此如果要使用它,则需要调用托管代码(例如,使用/clr
编译器选项或COM互操作)。 / p>
答案 1 :(得分:1)
也许boost::serialization图书馆正是你要找的。 p>
序列化功能在C ++中相当有限,因此boost::serialization更像是一个框架,使您可以使自己的类可序列化。