【发布时间】:2009-04-01 01:11:04
【问题描述】:
将 XML 文件添加到 Visual Studio 2008 项目(例如 windows 窗体应用程序项目)有什么好处。
添加到项目后,如何引用此 XML 以在同一项目的类中使用它?在这种情况下,我会将其作为查询发送到 Web 服务。
【问题讨论】:
标签: c# xml visual-studio
将 XML 文件添加到 Visual Studio 2008 项目(例如 windows 窗体应用程序项目)有什么好处。
添加到项目后,如何引用此 XML 以在同一项目的类中使用它?在这种情况下,我会将其作为查询发送到 Web 服务。
【问题讨论】:
标签: c# xml visual-studio
如果您想以某种形式使用 XML,您可以在属性窗口中将其标记为“嵌入式资源”,然后从您的代码中访问它,如下所示:
Assembly a = Assembly.GetExecutingAssembly();
if(a != null)
{
Stream s = a.GetManifestResourceStream(typeof(yourType), "YourXmlName.xml");
if (s != null)
{
String xmlContents = new StreamReader(s).ReadToEnd();
}
}
完成后,如果一切顺利,您将在“xmlContents”中获得 XML 文件的内容。
马克
【讨论】:
我想将您的 XML 驻留在您的项目(甚至是解决方案)中的优势在于,您可以在 VS 中以良好的格式甚至智能感知来维护它,然后使用 XML Spy 之类的东西或任何可以给您的东西那也是。
要在课程中引用它,您需要确保您可以访问它,并且它位于可靠的位置。
过去,我使用构建后事件将文件的最新副本移动到我需要的位置。正如 Arnshea 在这里所写的那样,“输出目录”是另一个答案。您可以使用 XML 文件本身的“复制到输出目录”属性来实现此目的。然后你的类就可以使用 XML 文件,知道它会驻留在一个可靠的地方。
您需要确保它是可访问的,尤其是在您回信时。确保它不会以“只读”的形式结束——就像源代码控制系统可以对你做的那样。将这些文件存储在 Program Files 下的文件夹中也可能会出现问题,尤其是在 Vista 上,用户权限(应该)受到限制。
【讨论】:
如果您的应用需要加载 XML,可以将其复制到输出目录。还简化了设置/部署项目的使用...
【讨论】:
另一个主要优点是(假设它已经到位——而且应该是!)是您可以对 XML 文件应用修订控制。
【讨论】:
我猜您不会一遍又一遍地将相同的 XML 文件发送到 WebService。
您将希望每次都修改其内容,因为您拥有XML Serialization。
如果以上所有条件都适用,那么您不需要需要 XML 文件,您只需要在运行时生成文件的类。 XML 只是一种传输方式,今天是 XML,明天可能是其他格式 (JSON)。
【讨论】: