我正在使用 C# ASP.NET VS2010。
我在 .aspx.cs 上有一个程序,它读取 XML 文件并且工作得很好。
它是这样的:
string fileName = "~/App_Data/" + filename + ".xml";
DataSet ds = new DataSet();
ds.ReadXml(MapPath(fileName));
我经常使用这个过程来读取各种文件的变化很小(文件名),因此,我试图把这个过程放在一个 Class1.cs 文件中(在 App_Code 文件夹中),但我收到了这个错误消息:
The type or namespace name 'MapPath' does not exist in the namespace 'Microsoft.SqlServer.Server' (are you missing an assembly reference?)
我使用此 MapPath 以这种方式将 XML 文件读入数据集:
ds.ReadXml(Server.MapPath(fileName));
文件名是前面几行声明的字符串变量:
string fileName = "~/App_Data/" + inputString + ".xml";
将此行放入 class.cs 文件后,VS2010 要求Server
通过将其替换为Microsoft.SqlServer.Server
本地(在同一行而不是通过添加命名空间)来解决丢失问题,因此新形式中的行如下所示:
ds.ReadXml(Microsoft.SqlServer.Server.MapPath(fileName));
作为记录,我确保源 .aspx.cs 文件上的所有命名空间都在类文件中。
为什么 Class1.cs 和 .aspx.cs 有区别?
我该如何解决这个问题?
为了从这个新的类文件中读取 XML 文件,我应该改变什么?
是否可以替代我的行来将 XML 文件读入数据集?