如何在Unity C#脚本中使用System.Xml.Linq

本文关键字:System Xml Linq 脚本 Unity | 更新日期: 2023-09-27 18:24:56

使用unity和c#,当我尝试这些行时

using System.Xml.Linq;

我收到这个错误

类型或命名空间名称Linq' does not exist in the namespace System.Xml"。是否缺少程序集引用?"?

因此,我在网上通过大量搜索发现,Linq可能会引起问题,您需要在MonoDevelop中手动添加引用。因此,我在那里添加了一个引用(右键单击解决方案窗格中的引用,单击编辑引用并浏览System.Xml.Linq)

仍然没有运气,

有什么想法吗?

如何在Unity C#脚本中使用System.Xml.Linq

我想这篇SO帖子会回答你的问题。。。

https://stackoverflow.com/a/875704/1246574

这和你现在遇到的问题差不多。

您不能手动修改monodedevelop(或visualstudio)解决方案或项目。因为他们是由Unity产生的。即使您修改了它,Unity也可以在重新生成解决方案文件时覆盖您的更改。

不能使用某些名称空间的原因是在Unity项目设置中选择的.net/mono版本。

在此文档中搜索"API兼容级别"http://docs.unity3d.com/Documentation/Manual/class-PlayerSettings.html

来吧,伙计们,停止修改生成的代码文件。这是2013年!

在这篇文章中,我发现Unity默认不支持.NET 3.5(这是使用Linq所必需的)。在Xtro谈到的设置中,您只能选择.NET 2.0。相反,您需要像纹理一样将所需的.dll文件拖动到Unity中。有点粗鲁,但很管用。再一次,正如Xtro所说,没有理由编辑MonoDevelop设置。它们对最终汇编没有影响。

编辑:请参阅Xtro的答案以获得替代解决方案。他通过将API兼容级别更改为.NET 2.0(而不是子集)使Linq工作。

第二版:我今天刚刚从Unity 4.1更新到4.2,得到一个错误,Linq被定义了两次。通过删除.dll,我解决了这个错误。注意,我仍在使用.NET 2.0子集。看起来他们默认添加了对Linq的支持。