下面的共享點代碼片試圖列出所有用戶簡檔屬性以及它們的值C#檢查,如果對象爲空 - 怪異結果
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite(args[0], SPUserToken.SystemAccount))
{
var profileManager = new UserProfileManager(SPServiceContext.GetContext(site));
UserProfile userProfile = profileManager.GetUserProfile(args[1]);
foreach (var Property in userProfile.Properties)
{
Console.WriteLine("Property DisplayName = " + Property.DisplayName + "; " + "Property Name = " + Property.Name);
if (userProfile[Property.Name] != null)
{
Console.WriteLine("user profile property value " + Property.Name + " is not null");
Console.WriteLine("property Value = " + userProfile[Property.Name].ToString());
}
else
{
Console.WriteLine("property Value = null");
}
}
}
}
}
這將產生以下輸出:
這表明該異常被它試圖檢查用戶配置文件屬性值爲空行來
if (userProfile[Property.Name] != null)
但我已經把它與null比較。那麼爲什麼它應該給出對象爲空的錯誤呢?
有人可以請澄清一下嗎?
userProfile不爲null,Property.Name也不爲空,我檢查userProfile [Property.Name]!= null。但它隨着錯誤而爆發。 究竟是怎麼回事?
我沒有加載在SharePoint的引用,但它會看到,USERPROFILE索引功能在內部拋出一個空異常前的相比,函數的結果是你的,如果爲空發聲明。 –
也許該特定'Property'的'Name'屬性是'null'。 –
您確定您的PDB文件正在重建,並且堆棧跟蹤是最新的? – Mikanikal