您需要配置必要的提供者才能使用UserController
和UserInfo
類。最直接的方法是使用網站的工作配置並將該應用作爲DNN模塊實施。 但是,您也可以嘗試將所需的DLL和配置節從DNN站點複製到控制檯應用程序,並使用DNN源來調試問題。
在這種情況下,源告訴設置UserInfo
對象的FirstName
屬性,因爲FirstName
屬性由配置文件提供者,其使用的數據訪問緩存提供商和數據提供支持失敗。 默認情況下,配置文件由DNNProfileProvider
實現,該文件使用FileBasedCachingProvider
和SqlDataProvider
來獲取配置文件屬性和數據。調用ProfileController.GetUserProfile
時,還會爲新的UserInfo
對象檢索配置文件屬性定義。這就是爲什麼NullReferenceException
被拋出。
在DNN 5.6.3相應的屬性有:
UserInfo.vb
<SortOrder(1), MaxLength(50), Required(True)> _
Public Property FirstName() As String
Get
Return Profile.FirstName
End Get
Set(ByVal Value As String)
Profile.FirstName = Value
End Set
End Property
<Browsable(False)> _
Public Property Profile() As UserProfile
Get
'implemented progressive hydration
'this object will be hydrated on demand
If _Profile Is Nothing Then
_Profile = New UserProfile
ProfileController.GetUserProfile(Me)
End If
Return _Profile
End Get
Set(ByVal Value As UserProfile)
_Profile = Value
End Set
End Property
你確定它的'user.FirstName =名字;'拋出異常,而不是線以上?如果是這樣,那麼它的'firstName'就是null,而不是你的'UserInfo'對象。 –
這就是visual studio顯示的內容,firstname不爲null。 – KallDrexx