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

阅读更多

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

 

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

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

class comboBoxHelper{/// 
        /// 填充数据库查询的下拉框数据
        /// 
        /// 指定combobox
        /// 要显示的列
        /// 要查询的表名
        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偶尔用一下而已。

你可能感兴趣的:(C,C++,C#,.net)