首页 > 解决方案 > 从对象获取属性

问题描述

我有一个对象,可以对某些属性进行加密(如果数据库上有相关信息)或为空(如果数据库上没有相关信息)

例如,对于电子邮件,我是这样做的;

public string Email
{
    get
    {
        if (String.IsNullOrEmpty(this.Email))
            return "";
        else
            return Crypto.Decrypt(this.Email, GlobalVars.VALID_KEY);
    }
    set
    {
        this.Email = value;
    }
}

我试图通过这个来完成的是,当设置值时,它将是一个空字符串或加密字符串,当我需要该属性时,它会将空字符串或解密字符串传递给我

在调试模式下,我确实设置了一个断点来检查对象上的某些内容,当 VS 评估对象时,我收到了这个错误:

目标进程在评估函数时以代码 -2147023895 退出 ....Email.get

对此有何建议?!

提前致谢

标签: c#properties

解决方案


您调用Emailget这将创建一个无限循环。

尝试这个 :

private string _email;
public string Email
{
    get
    {
        if (String.IsNullOrEmpty(_email))
            return "";
        else
            return Crypto.Decrypt(_email, GlobalVars.VALID_KEY);
    }
    set
    {
        _email = value;
    }
}

推荐阅读