サービスのスレッドを実行しているときに、オブジェクトのコレクションが正しくアクセスされないという問題が発生しています。私はVS2008で私のユニットテストをうまく動かすことができますが、サービスにデバッガを付けると、私はそれが1ベースのインデックスではなく、0ベースのインデックスで開始していることがはっきり分かります。私はこれを分離するために考えることができるすべてを試したが、唯一の違いはサービス内であり、コマンドラインアプリとして実行していないことである。なぜ私のコレクションは1ではなく0で始まると決めましたか?
私は関数をデバッグするときに私は私のユニットテストでそれを実行するときに私はしない "プロパティの評価に失敗しました"というメッセージが表示されます。
お知らせください。
[EDIT]
私は常にこのことを想定してきた配列は、通常、0から始めることを知っているが、今日、私はこのバグを発見し、私はそれが0から始まっていると考えていても、デバッガがあることを示していると判断していますそれは1から始まります。私がコレクションを徹底的に調べると、VSでは正しい値が得られますが、サービスでは正しくありません。
[EDIT]
私はそれに対してキーを置くことができるので、私はMicrosoft.VisualBasic.Collectionを使用しています。ディクショナリオブジェクトも使用されている可能性がありますが、このように設定されているので、BLL Baseクラスや他の多くの関数がそれを読み取ってそれを変更することは好ましくありません。
[SOLUTION]
は私がキーにアクセスするコードを書き直す必要はありませんように(文字列、オブジェクトの)dicitonaryとGeneric.KeyValuePairを使用して私のコードをリファクタリング。 collecitonsオブジェクトと同じようにコレクションのintを処理しないので、今はうまく動作するはずです。
どのような種類のコレクションを使用していますか? –
Microsoft.VisualBasic.Collection – Middletone