0

私はC#用に構築した新しいdllをテストしようとしています

private void button1_Click(object sender, EventArgs e)
        {
            String [] first = UserQuery.Get_All_Users();
            //MessageBox.Show(first);
        }

しかし、私はで次のエラーが発生しますString [] first = UserQuery.Get_All_Users();

タイプ'System.NullReferenceException'の未処理の例外がUser_Query.dllで発生しました

追加情報:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私はこれを何時間も理解しようと努力していましたが、null変数を見つけることができません

dllが間違っている場合に備えてdllを投稿します

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;

namespace User_Query
{
    public class UserQuery
    {
        public static string[] Get_All_Users()
        {
            string[] names = new string[10];

            var path = string.Format("WinNT://{0},computer", Environment.MachineName);

            using (var computerEntry = new DirectoryEntry(path))
            {
                var userNames = from DirectoryEntry childEntry in computerEntry.Children
                                where childEntry.SchemaClassName == "User"
                                select childEntry.Name;
                byte i = 0;
                foreach (var name in userNames)
                {
                    Console.WriteLine(name);
                    names[i] = name;
                    i++;
                }
                return names;
            }           
        }
    }
}
4

2 に答える 2

1

に問題があります。\\パス変数...の代わりにあるはずなので//

于 2012-09-24T17:57:44.577 に答える
0

ここでの問題はコードではなく、VS2010がdllをロードしていないことであることが判明しました。これは、プログラムをデバッグからリリースバージョンに変更することを決定したが、実行後にプロジェクトをクリーンアップしなかったため、プログラムがdllを正しくロードしなかったために発生します。実行する必要があるのは、プロジェクトをクリーンアップすることだけでした

于 2012-09-26T10:31:14.130 に答える