首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

App.config connectionString 路徑無需 @ 轉義:XML 與 C# 字符串字面量區別

     編輯:程式設計綜合問答

在 app.config / web.config 的 connectionStrings 中寫文件路徑時,不需要也不支持 C# 的 @ 逐字字符串語法。本文釐清配置文件與代碼中字符串處理的區別。

錯誤嘗試

<connectionStrings>
  <add name="MyDb" connectionString="Data Source=@D:\Data\my.db" /> <-- 無效 -->
</connectionStrings>

正確寫法

<connectionStrings>
  <add name="MyDb" connectionString="Data Source=D:\Data\my.db" /> <-- 直接寫路徑 -->
</connectionStrings>
  • XML 屬性值按字面解析,\ 就是反斜杠字符,無需轉義
  • 若路徑含特殊 XML 字符(&、<、>、"、'),需用實體編碼:&amp;、&lt; 等

為什麼 C# 代碼需要 @

場景處理方式示例
C# 代碼中普通字符串\ 為轉義字符"D:\\Data\\my.db"
C# 代碼中 @ 逐字字符串\ 為普通字符@"D:\Data\my.db"
XML 配置文件屬性值直接字面量,無轉義D:\Data\my.db

代碼中讀取配置

string connStr = ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;
// connStr 直接得到 "Data Source=D:\Data\my.db",可直接用

結論:配置文件寫「原樣路徑」,代碼讀取後直接用,中間無需任何轉義處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved