メソッド内に次のコードがあります。
string username = (string)context["UserName"];
string un = (string)context["UserName"];
問題は、最初の文字列「username」が割り当てられていないのに対し、2 番目の文字列は割り当てられていることです。
さらに奇妙なことに、最初の行の後でデバッグを停止し、その行をイミディエイト ウィンドウにコピーして、変数型のデラレーションを削除すると、正常に割り当てられました。
すべてを再構築し、プロジェクトのプロパティを確認しましたが、問題ないようです。
context
変数は、System.Configuration.SettingsContext
ハッシュ テーブルである です。具体的には、プロファイル プロバイダーであるGetPropertyValues
メソッドを実装しています。
VS 2012 と .NET 4.5 を使用しています
編集:
プロジェクトでコード コントラクトを使用しています。これは、ランタイム チェックにコンパイル時のコード インジェクションを使用します。無効にしましたが、すべて正常に機能しています。コントラクトを 1 つずつ削除して、問題の原因となっているコントラクトを特定します。