2011-08-01 27 views
0

是否有可能在没有托管代码(cli)的情况下使用xmlwriter(xmlserialization)?没有托管代码的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)); 
} 

回答

1

是,也不是。

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

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

+0

感谢您的回复!问题是,正如你在文章中描述的那样,C++ cli(托管代码)不支持智能感知,这对于进一步的实现会有帮助。在使用/ clr(托管代码)时,是否有可能在Visual Studio 2010 C++中使用IntelliSense? – Peter