XAMARIN表单项目的System.XML
本文关键字:System XML 项目 表单 XAMARIN | 更新日期: 2023-09-27 18:15:34
我试图使用XmlDocument类**和**XmlDocument .Load(..)函数关于XAMARIN的便携项目。与visual studio社区形成可移植的解决方案。
编译器说"类型或命名空间名称'XmlDocument'找不到(您是否缺少using指令或程序集引用?
如果我进入参考,它不允许我添加system.xml命名空间(没有),如果我浏览文件并转到system.xml.dll,它告诉我该文件无法添加,因为该组件已经被构建系统自动引用。
我能做些什么来使用这个类??
注意:在。droid和。ios项目中有一个对System.xml的引用,在这些项目中我可以使用XmlDocument类。
PCL不支持XmlDocument
。您可以使用System.Xml.Linq.XDocument
。
XmlDocument类不能在PCL库中使用,这可以在它的文档页面Version Information下看到。(与XmlDictionary类的版本信息部分相比—注意该类如何具有可移植类库,而XmlDocument没有)
如果你想使用XmlDocument,你必须创建一个依赖服务,并在Android和iOS版本下分别实现它。
我毫不费力地将XML添加到我的项目中:
using System.Xml;
using System.Xml.Serialization;
public string ToXML(Object oObject)
{
XmlDocument xmlDoc = new XmlDocument();
XmlSerializer xmlSerializer = new XmlSerializer(oObject.GetType());
using (MemoryStream xmlStream = new MemoryStream())
{
xmlSerializer.Serialize(xmlStream, oObject);
xmlStream.Position = 0;
xmlDoc.Load(xmlStream);
return xmlDoc.InnerXml;
}
}
之后可以共享XML字符串:
public MvxCommand ShareWaypoints => new MvxCommand(ShareWaypointsAsync);
public async void ShareWaypointsAsync()
{
try
{
string strXML = "";
foreach (var wp in waypoints)
{
strXML += ToXML(wp);
}
if (strXML != "")
await Share.RequestAsync(new ShareTextRequest
{
Text = strXML,
Title = "Share Text"
});
}
catch (Exception ex)
{
await _userDialogs.AlertAsync(ex.Message);
}
}