您需要配置必要的提供程序才能使用UserController
和UserInfo
类。最直接的方法是使用网站的工作配置并将应用程序实现为 DNN 模块。但是您也可以尝试将所需的 DLL 和配置部分从 DNN 站点复制到控制台应用程序,并使用 DNN 源来调试问题。
在这种情况下,源告诉设置UserInfo
对象的FirstName
属性失败,因为该FirstName
属性由配置文件提供程序支持,该配置文件提供程序使用缓存提供程序和数据提供程序进行数据访问。默认情况下,配置文件由DNNProfileProvider
使用FileBasedCachingProvider
和SqlDataProvider
来获取配置文件属性和数据的 实现。调用时还会为新UserInfo
对象检索配置文件属性定义ProfileController.GetUserProfile
。这就是为什么NullReferenceException
会被抛出。
DNN 5.6.3 中的相应属性为:
用户信息.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