Windows phone 7 Windows Phone 7 UserExtendedProperties

Windows phone 7 Windows Phone 7 UserExtendedProperties,windows-phone-7,Windows Phone 7,在这里被指示后: 我在侧加载的应用程序上尝试了以下代码。写出来的只是000001值 我知道仿真器中会出现这种情况,但我希望它在我的手机上时能得到真正的价值。有什么想法吗 int ANIDLength = 32; int ANIDOffset = 2; string result = string.Empty; object anid;

在这里被指示后:

我在侧加载的应用程序上尝试了以下代码。写出来的只是000001

我知道仿真器中会出现这种情况,但我希望它在我的手机上时能得到真正的价值。有什么想法吗

                 int ANIDLength = 32;  
                 int ANIDOffset = 2;

                 string result = string.Empty;  
                 object anid;  
                 if (UserExtendedProperties.TryGetValue("ANID", out anid))  
                 {
                     if (anid != null && anid.ToString().Length >= (ANIDLength + ANIDOffset))
                     {
                         result = anid.ToString().Substring(ANIDOffset, ANIDLength);
                     }
                     else
                     {
                         result = "000001";
                     } 
                 }   

您需要从长度检查的计算中删除1,以说明在基于零的索引上进行的子字符串操作:

 if (anid != null && anid.ToString().Length >= (ANIDLength + ANIDOffset - 1))
这在我的机器上工作:

private string GetAnid()
{
    object anidValue;

    int ANIDLength = 32;
    int ANIDOffset = 2;

    if (UserExtendedProperties.TryGetValue("ANID", out anidValue))
    {
        if (anidValue != null && anidValue.ToString().Length >= (ANIDLength + ANIDOffset - 1))
        {
            return anidValue.ToString().Substring(ANIDOffset, ANIDLength);
        }
        else
        {
            return "???";
        }
    }
    else
    {
        return "???";
    }
}

您正在打印
result
的值吗?实际上,我正在将result的值发送到一个Web服务,该服务将一条记录插入我的表中。Jeff,请参阅。谢谢@阿扬-请看我下面的评论。我删除了它,因为我的代码中有一个bug。从技术上讲,我这样做是正确的,但是,我错放了我的结果变量,它过度写入了anid。所以我不想让它成为一个正在寻找解决方案的人的分心。我只是尝试了一下,然后重新部署到我的手机上,但它不起作用。我仍然得到000001。@杰夫,我和其他三个用户一起投票取消删除。在收到满意的答案后删除问题是不应该的。@Pekka-我同意!然而,我删除它的原因是它是我代码中的一个bug。所以这个问题真的是无效的。。。由于我的原始代码工作正常,除了我将results变量放在if之后,它总是将其设置为000001。我不想让它成为一个分心的人实际上需要知道如何做到这一点。。。