首页
社区
课程
招聘
.net问题
发表于: 2009-5-4 10:15 6920

.net问题

2009-5-4 10:15
6920
fox2007 和.net Reflector反编译一个dll,发现一个方法的内容反编译的结果不一样。不知道是哪一个错了还是怎么回事儿。

.net Reflector 结果如下:
protected override void ReportPageInit()
{
    this.ReportType = base.Request.QueryString["ReportType"].Trim().ToLower();
    switch (this.ReportType)
    {
        case "3":
            this.StoreName = "WEB_SCM_BuyBill_List_UnFinished";
            this.StroeDetailName = "WEB_SCM_BuyBill_List_UnFinished_Detail";
            break;

        case "2":
            this.ReportSearch1.set_SelectValues(new string[] { "未完成", "已完成", "全部" });
            this.StoreName = "WEB_SCM_BuyOrder_List_UnFinished";
            this.StroeDetailName = "WEB_SCM_BuyOrder_List_UnFinished_Detail";
            break;

        case "12":
            this.StoreName = "WEB_SCM_SaleBill_List_UnFinished";
            this.StroeDetailName = "WEB_SCM_SaleBill_List_UnFinished_Detail";
            break;

        case "5":
            this.ReportSearch1.set_SelectValues(new string[] { "未完成", "已完成", "全部" });
            this.StoreName = "WEB_SCM_SaleOrder_List_UnFinished";
            this.StroeDetailName = "WEB_SCM_SaleOrder_List_UnFinished_Detail";
            break;

        case "18":
            this.StoreName = "WEB_SCM_CommissionBill_List_UnSettled";
            this.StroeDetailName = "WEB_SCM_CommissionBill_List_UnSettled_Detail";
            break;

        case "19":
            this.StoreName = "WEB_SCM_ENTrustedBill_List_UnSettled";
            this.StroeDetailName = "WEB_SCM_ENTrustedBill_List_UnSettled_Detail";
            break;

        case "6060":
            this.StoreName = "WEB_SCM_LendBill_List_UnBack";
            this.StroeDetailName = "WEB_SCM_LendBill_List_UnBack_Detail";
            break;

        case "8787":
            this.StoreName = "WEB_SCM_BorrowBill_List_UnBack";
            this.StroeDetailName = "WEB_SCM_BorrowBill_List_UnBack_Detail";
            break;
    }
    this.ReportSearch1.set_ReportType(this.ReportType);
    this.CZCGbGrid1.set_StoreProcedure(this.StoreName);
    string str = CTextHandler.SafeRequest("BID");
    if (str != "")
    {
        DataSet dsBySql = CDBAccessFactory.GetDsBySql("select Btypeid,FullName from  pub_btype where _id = '" + str + "'");
        if (CTextHandler.CheckDataSet(dsBySql) && !base.IsPostBack)
        {
            this.ReportSearch1.ElementSetValue("BID", str);
            this.ReportSearch1.ElementSetValue("BTypeid", dsBySql.Tables[0].Rows[0][0]);
            this.ReportSearch1.ElementSetValue("BFullName", dsBySql.Tables[0].Rows[0][1]);
        }
    }
}

fox 的结果如下:

protected override void ReportPageInit ()
{
     string key;
     ReportType = base.Request.QueryString["ReportType"].Trim().ToLower();
     if ((key = ReportType) != null)
     {
          int num1;
          if (<PrivateImplementationDetails>{5B393355-33DA-4A4C-8F9C-9C2F3E032A18}.$$method0x60000e6-1 == null)
          {
               Dictionary<string,int> dictionary1 = new Dictionary<string,int>(8);
               dictionary1.Add("3", 0);
               dictionary1.Add("2", 1);
               dictionary1.Add("12", 2);
               dictionary1.Add("5", 3);
               dictionary1.Add("18", 4);
               dictionary1.Add("19", 5);
               dictionary1.Add("6060", 6);
               dictionary1.Add("8787", 7);
               <PrivateImplementationDetails>{5B393355-33DA-4A4C-8F9C-9C2F3E032A18}.$$method0x60000e6-1 = dictionary1;
          }
          if (<PrivateImplementationDetails>{5B393355-33DA-4A4C-8F9C-9C2F3E032A18}.$$method0x60000e6-1.TryGetValue(key, out num1))
          {
               switch (num1)
               {
                    case 0:
                    {
                         StoreName = "WEB_SCM_BuyBill_List_UnFinished";
                         StroeDetailName = "WEB_SCM_BuyBill_List_UnFinished_Detail";
                         goto Label_020E;
                    }
                    case 1:
                    {
                         ReportSearch1.set_SelectValues(new string[]{"\u672a\u5b8c\u6210", "\u5df2\u5b8c\u6210", "\u5168\u90e8"});
                         StoreName = "WEB_SCM_BuyOrder_List_UnFinished";
                         StroeDetailName = "WEB_SCM_BuyOrder_List_UnFinished_Detail";
                         goto Label_020E;
                    }
                    case 2:
                    {
                         StoreName = "WEB_SCM_SaleBill_List_UnFinished";
                         StroeDetailName = "WEB_SCM_SaleBill_List_UnFinished_Detail";
                         goto Label_020E;
                    }
                    case 3:
                    {
                         ReportSearch1.set_SelectValues(new string[]{"\u672a\u5b8c\u6210", "\u5df2\u5b8c\u6210", "\u5168\u90e8"});
                         StoreName = "WEB_SCM_SaleOrder_List_UnFinished";
                         StroeDetailName = "WEB_SCM_SaleOrder_List_UnFinished_Detail";
                         goto Label_020E;
                    }
                    case 4:
                    {
                         StoreName = "WEB_SCM_CommissionBill_List_UnSettled";
                         StroeDetailName = "WEB_SCM_CommissionBill_List_UnSettled_Detail";
                         goto Label_020E;
                    }
                    case 5:
                    {
                         StoreName = "WEB_SCM_ENTrustedBill_List_UnSettled";
                         StroeDetailName = "WEB_SCM_ENTrustedBill_List_UnSettled_Detail";
                         goto Label_020E;
                    }
                    case 6:
                    {
                         StoreName = "WEB_SCM_LendBill_List_UnBack";
                         StroeDetailName = "WEB_SCM_LendBill_List_UnBack_Detail";
                         goto Label_020E;
                    }
                    case 7:
                    {
                         goto Label_01F8;
                    }
               }
          }
     }
     goto Label_020E;
Label_01F8:
     StoreName = "WEB_SCM_BorrowBill_List_UnBack";
     StroeDetailName = "WEB_SCM_BorrowBill_List_UnBack_Detail";
Label_020E:
     ReportSearch1.set_ReportType(ReportType);
     CZCGbGrid1.set_StoreProcedure(StoreName);
     string str1 = CTextHandler.SafeRequest("BID");
     if (str1 != "")
     {
          DataSet set1 = CDBAccessFactory.GetDsBySql("select Btypeid,FullName from pub_btype where _id = '" + str1 + "'");
          if (CTextHandler.CheckDataSet(set1) && !base.IsPostBack)
          {
               ReportSearch1.ElementSetValue("BID", str1);
               ReportSearch1.ElementSetValue("BTypeid", set1.Tables[0].Rows[0][0]);
               ReportSearch1.ElementSetValue("BFullName", set1.Tables[0].Rows[0][1]);
          }
     }
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 104
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就像两个人逆向同一个代码吧,理解不同而已
2009-5-4 10:31
0
雪    币: 154
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不知道有没有对错之分。还是两条路都能到罗马
2009-5-4 10:36
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
第二个比较好理解,流程较清晰,大致看了一下,结果一样
2009-5-4 11:10
0
雪    币: 104
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
貌似第一个比较好理解一些
2009-5-4 16:13
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也理解不来的
2009-5-4 17:50
0
雪    币: 154
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
第二种前半部分在第一个里面没有。不知道,刚才是学.net,也一知半解的
2009-5-5 01:07
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
那是就是转换选择跳转
2009-5-5 06:44
0
雪    币: 154
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不知道第二个 多于的这些语句是干什么用的,是不是多余的?编译是编译不过去的。

      <PrivateImplementationDetails>{5B393355-33DA-4A4C-8F9C-9C2F3E032A18}.$$method0x60000e6-1 = dictionary1;
          }
          if (<PrivateImplementationDetails>{5B393355-33DA-4A4C-8F9C-9C2F3E032A18}.$$method0x60000e6-1.TryGetValue(key, out num1))
2009-5-5 23:55
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看IL比较可靠
2009-5-7 12:22
0
游客
登录 | 注册 方可回帖
返回
//