2011-11-15 5 views
-1

関数エラー:のConfigurationManager私はC#プロジェクトをコード化し、次のように私はapp.configファイルを構成し

<appSettings> 
    <add key="smUserName" value= "XXX"/> 
    <add key="smPassword" value= "XXX"/> 
</appSettings> 

をしかし、その後、私はApp.configファイルからsmUserNamesmPassword値を取得することはできません。

using System.Configuration; 

// more code snipped... 

public static string smUserName = ConfigurationManager.AppSettings.Get("smUserName").ToString(); 
public static string smPassword = ConfigurationManager.AppSettings.Get("smPassword").ToString(); 

using System.Configurationステートメントがあるにもかかわらず、このコードをコンパイルすると、「現在のコンテキストに名前 'ConfigurationManager'が存在しません」というエラーが表示されます。

+0

は 'ConfigurationManager.AppSettings [ "smUserName"]'と 'ConfigurationManager.AppSettings [ "smPassword"]あなたは'を得ている –

+0

エラーを試してみてください?ランタイムエラー、またはプロジェクトがコンパイルされない –

+0

エラーとは何か、そのエラーが問題の内容を伝えている可能性があります。 –

答えて

4

を次のようにあなたも試すことができますコードがコンパイルされないという問題が発生した場合は、 System.Configurationアセンブリ。

+0

ご協力いただきありがとうございます。私は参照を追加し、問題は解決しました。しかし、まずコード化しました.Syste.Configurationを使って追加しましたが、なぜ追加しませんか? – brsvdn

+0

@brsvdn:usingステートメントとアセンブリ参照の追加は、全く異なる2つのことです。あなたが使用してステートメントを追加するときにアセンブリ参照を(同じ名前空間には複数のアセンブリで使用することができる)に自動的に追加されません。 –

0

あなたは、C#で

public static string smUserName = ConfigurationSettings.AppSettings["smUserName"]; 
public static string smPassword = ConfigurationSettings.AppSettings["smPassword"]; 

を、このようなコードを書いてもへの参照を追加する必要がありますSystem.Configuration

EDIT:

try 
{ 
    AppSettingsSection appSettings = 
     config.AppSettings as AppSettingsSection; 
    Console.WriteLine("Section name: {0}", 
      appSettings.SectionInformation.SectionName); 

    // Get the AppSettings section elements. 
    Console.WriteLine(); 
    Console.WriteLine("Using AppSettings property."); 
    Console.WriteLine("Application settings:"); 
    // Get the KeyValueConfigurationCollection 
    // from the configuration. 
    KeyValueConfigurationCollection settings = 
     config.AppSettings.Settings; 

    // Display each KeyValueConfigurationElement. 
    foreach (KeyValueConfigurationElement keyValueElement in settings) 
    { 
     Console.WriteLine("Key: {0}", keyValueElement.Key); 
     Console.WriteLine("Value: {0}", keyValueElement.Value); 
     Console.WriteLine(); 
    } 
} 
catch (ConfigurationErrorsException e) 
{ 
    Console.WriteLine("Using AppSettings property: {0}", 
     e.ToString()); 
} 
+0

「名 『のConfigurationManager』は現在のコンテキスト内に存在しない」、取得することと同等であるべきではないでしょうか? –

+0

ConfigurationSettings.AppSettingsが廃止され、ConfigurationManager.AppSettings ... –

+0

@PaoloTedescoに置き換えられました、はい、それは確かにこの方法を取得することと等価です。 –

1

あなたにはどんな誤りがありますか?

また、これと試みることができる:あなたのエラーはエラーが「名です

でのIF

System.Configuration.AppSettingsReader reader; 
public static string smPassword = reader.GetValue("smUserName", typeof(string)).ToString(); 

EDIT

'のConfigurationManager' に存在しません。現在のコンテキスト "

コメントに記載されている通り

の場合は、プロジェクトにSystem.Configurationへの参照を追加する必要があります。

0
using System.Configuration; 
// all other using as required. 

public partial class Admin_UserControls_GridDisplay : System.Web.UI.UserControl 
{ 
    public static string smUserName = ConfigurationManager.AppSettings["smUserName"].ToString(); 
    public static string smPassword= ConfigurationManager.AppSettings["smPassword"].ToString(); 
} 

コードは、ウェブサイトへの参照を追加動作しない場合は、それはuが設定マネージャにアクセスしようとしているウェブサイトのページであると思います。

関連する問題