我以前曾问过这个问题,但我正在恢复它,因为我没有得到满意的答复。
我有一个配置文件变量,当我加载它时,它被分配了默认值。我需要检查它是否曾经被分配过。通常我会使用 is null 比较,但这不起作用。
有人建议我使用看起来落后的 FindProfilesByUserName。不管这种方法不会起作用,因为它只告诉我用户是否创建了任何个人资料,而不是针对我感兴趣的特定成员数据。(这似乎是倒退的,因为个人资料的全部目的是使访问当前的用户个人资料数据。这似乎是一个糟糕的设计,除非我遗漏了什么。)
我能看到的最后一个选项是为每个对象分配位以查看它们是否被弄脏或设置。除非需要,否则我不想这样做。
这是 FindProfilesByUserName 示例:
ProfileInfoCollection profileInfo = ProfileManager.FindProfilesByUserName(ProfileAuthenticationOption.All, Membership.GetUser().UserName);
if (profileInfo.Count > 0)
{
if (profileInfo[Membership.GetUser().UserName] != null)
我的最后一个想法是存储集合,因为我认为我已经读过它们是可以为空的。就我而言,我真的不需要收藏,但这可能是最简单的解决方案。期待建议..我觉得我在这件事上一定遗漏了一些明显的东西。
要清楚
这不起作用(如果 http.context.profile.mydata != null)