2012-09-24 119 views
0

我特林考一個新的DLL,我已經建立了C#未處理的異常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中

附加信息:未將對象引用設置爲對象的實例。

我一直特林算出這個一出來幾個小時,但找不到任何空可變因素

我後我的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; 
      }   
     } 
    } 
} 
+3

如果不知道確切發生異常的位置,很難提供幫助 - 但如果您遵循.NET命名約定並清除那些下劃線,它將有助於可讀性。 (你也應該考慮使用'List '而不是字符串數組。) –

+1

有沒有理由不能在你的dll中設置一個斷點並逐步完成? – Brandon

+0

討厭看起來像一個noob,但我是新來的這只是谷歌命名約定從來沒有聽說過這個uni。 –

回答

0

這裏的問題竟然不是代碼,而是VS2010不加載DLL。發生這種情況是因爲我決定將使用dll的調試程序更改爲發行版本,但是我沒有在完成後清理項目,因此程序沒有正確加載dll。所有需要完成的工作都是乾淨的項目

1

有一個問題,您的。路徑變量...因爲應該有\\而不是//