C#ASP.NETVS2010を使用しています。
.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ファイルをデータセットに読み込むための私の行の代わりはありますか?