c#桌面应用程序使用vs2008内置自带的Dotfuscator Community Edition产生的问题

当使用该代码混淆器Dotfuscator Community Edition时,会提示注册激活专业版,可以跳过不注册。

 

使用该工具会有个问题。就是下拉框的值会取不到!

下面是详细过程。代码片段为使用的插入combobox列表数据的方法。

class comboBoxHelper{/// <summary>
        /// 填充数据库查询的下拉框数据
        /// </summary>
        /// <param name="cb">指定combobox</param>
        /// <param name="dispColumn">要显示的列</param>
        /// <param name="tableName">要查询的表名</param>
        public static void fillComboBox(ComboBox cb, string dispColumn,string tableName)
        {
            SqlConnection conn = msSqlConnection.GetCon();
            SqlDataReader reader = dbUtil.findBySql("select sid, "+dispColumn+" from "+tableName, conn);

            ArrayList list = new ArrayList();
            while (reader.Read())
            {
                list.Add(new ListObject((long)reader["sid"], "", reader[dispColumn].ToString(), 0));
            }
            
            reader.Dispose();
            msSqlConnection.dispose(conn);
            if (list.Count == 0)
            {
                return;
            }
            cb.DisplayMember = "strName";
            cb.ValueMember = "longSid";
            cb.DataSource = list;
        }
}

 

上面代码片段中用到的ListObject类

/*
         * 此类用来存储list中的对象,当选中时方便从中抽取需要的字段
         * **/
        public class ListObject
        {
            //sid
            private long sid;
            //速记码或者编号
            private String codeValue;
            //姓名或者名称
            private String nameValue;
            //listBox中显示时编号与名称的格式设置,方便名称对齐
            private int cols;

            public listObject(long sid, String codeValue, String nameValue,int cols)
            {
                this.sid = sid;
                this.codeValue = codeValue;
                this.nameValue = nameValue;
                this.cols = cols;
            }
            public long longSid
            {
                get
                {
                    return sid;
                }
                set
                {
                    sid = value;
                }
            }
            public String strCode
            {
                get
                {
                    return codeValue;
                }
                set
                {
                    codeValue = value;
                }
            }
            public String strName
            {
                get
                {
                    return nameValue;
                }
                set
                {
                    nameValue = value;
                }
            }
            //重载ToString方法,方便在listBox中自动调用显示
            override public String ToString()
            {
                return appendSpace(codeValue,cols) + nameValue;
            }

        }

 

 

发现当使用代码混淆器后,运行时通过this.comboBox1.SelectedValue是无法取到值的。

bug?

who kowns?

 

放弃转而使用其他工具了。本来我就是个Java自由人,.net偶尔用一下而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值