zoukankan      html  css  js  c++  java
  • WCF和WPF读取xml的路径问题

    使用WCF编写服务,涉及到xml的读取,使用了System.AppDomain.CurrentDomain.BaseDirectory来获取路径,获得的是项目的基目录 例如: string path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @Data.xml); xml文件: ?xmlversion= 1.0 encoding= utf-8 ? Users User UserName Sky300 /Us
      

      使用WCF编写服务,涉及到xml的读取,使用了System.AppDomain.CurrentDomain.BaseDirectory来获取路径,获得的是项目的基目录

      例如:

      string path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @"Data.xml");

      xml文件:

    <?xml version="1.0" encoding="utf-8" ?>
    < Users>
    < User>
    < UserName>Sky300</UserName>
    < Password>123</Password>
    < Age>25</Age>
    < /User>
    < User>
    < UserName>QYB</UserName>
    < Password>123</Password>
    < Age>25</Age>
    < /User>
    < User>
    < UserName>ZJ</UserName>
    < Password>123</Password>
    < Age>25</Age>
    < /User>
    < /Users>

      WCF的服务的实现:

    public List<UserInfo> GetData()
    {
    List<UserInfo> list = new List<UserInfo>();
    string path = System.IO.Path.Combine(Environment.CurrentDirectory, @"Data.xml");
    string path1 = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @"Data.xml");
    XDocument xmldoc=XDocument.Load(path1);
    var users = xmldoc.Descendants("User");
    foreach (var item in users)
    {
    UserInfo info = new UserInfo();
    info.UserName = item.Element("UserName").Value;
    info.Password = item.Element("Password").Value;
    info.Age =Convert.ToInt32(item.Element("Age").Value);
    list.Add(info);
    }
    return list;
    }

      在WPF中涉及到xml的读取,使用了Environment.CurrentDirectory

      例如:

      string path = System.IO.Path.Combine(Environment.CurrentDirectory, @"Data.xml");

      1. Application.StartupPath——获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

      2. Environment.CurrentDirectory——获取和设置当前目录(即该进程从中启动的目录)的完全限定路径,只是“当前”目录,不一定是exe文件所在的目录。在用FileOpenDialog选择一个文件以后这个目录就跟着发生改变了。

      3. Application.ExecutablePath——获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

      本文来自sky300的博客,原文地址:http://www.cnblogs.com/sky300/archive/2012/06/22/2558583.html

  • 相关阅读:
    将Moba的输出导出为文件
    MyBatis入参为0时失效问题
    (笔记)交大电院MEM提前面试优秀经验分享【附面试流程及规则】
    (笔记)GPIO基本原理与寄存器配置(STM32篇)
    (笔记)高速电路板完美走线的诀窍
    使用 python 收集 kubernetes events 并写入 elasticsearch
    java使用io.kubernetes.client-java调用k8s api创建pod/service/ingress示例
    中英文逗号空格分隔符正则式
    SpringCloud学习一-搭建netflix-eureka微服务集群
    Spring 中经典的 9 种设计模式,打死也要记住啊!
  • 原文地址:https://www.cnblogs.com/kennyliu/p/3432245.html
Copyright © 2011-2022 走看看