文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>发布一个关于股票chart的项目(反编译vadimv.com)源码,并总结一下反编译过程中的问题(只是部分)

发布一个关于股票chart的项目(反编译vadimv.com)源码,并总结一下反编译过程中的问题(只是部分)

时间:2010-11-24  来源:永恒的记忆

一、待解决问题

1.主界面

进入主界面后,图表并没有显示,当点击网站下面的“term of services”后或拉图表下面的滚动条后才显示。

 图1

  在原网站中进去是

 图2

2.伸缩后其他股票图不见了

  当拉上面的伸缩控件后,当再次打开其他股票代码(Symbol)时图表又不显示了,执行上诉操作后又显示了。

图3

 当拉伸后,再次出现了图1现象。

 

二、反编译问题

1.下载网站的xap文件,解压后发现存在XAML源文件,并未经过编译

图4

后来发现是在做项目时要将XAML文件的属性设置为“内容”

 

2.用reflector打开时发现下面

大多数项目在"-{}"中只有"module"而在此项目中有三项,原来是定义了一个没有命名空间的属性类。

 

3.当反编译AccessBase<T>这个类时发现存在下面奇怪的代码

 public IEnumerable GetEnumerator()
    {
        <GetEnumerator>d__0<T> d__ = new <GetEnumerator>d__0<T>(-2);
        d__.<>4__this = (AccessBase<T>) this;
        return d__;
    }

    // Nested Types
    [CompilerGenerated]
    private sealed class <GetEnumerator>d__0 : IEnumerable<object>, IEnumerable, IEnumerator<object>, IEnumerator, IDisposable
    {
        // Fields
        private int <>1__state;
        private object <>2__current;
        public AccessBase<T> <>4__this;
        public List<T>.Enumerator <>7__wrap2;
        private int <>l__initialThreadId;
        public T <item>5__1;

        // Methods
        [DebuggerHidden]
        public <GetEnumerator>d__0(int <>1__state)
        {
            this.<>1__state = <>1__state;
            this.<>l__initialThreadId = Thread.CurrentThread.ManagedThreadId;
        }

        private void <>m__Finally3()
        {
            this.<>1__state = -1;
            this.<>7__wrap2.Dispose();
        }

        private bool MoveNext()
        {
            try
            {
                switch (this.<>1__state)
                {
                    case 0:
                        this.<>1__state = -1;
                        this.<>4__this.EnsureData();
                        this.<>7__wrap2 = this.<>4__this.data.GetEnumerator();
                        this.<>1__state = 1;
                        while (this.<>7__wrap2.MoveNext())
                        {
                            this.<item>5__1 = this.<>7__wrap2.Current;
                            if (!(this.<item>5__1.GetType() == typeof(T)))
                            {
                                goto Label_00B9;
                            }
                            this.<>2__current = this.<item>5__1;
                            this.<>1__state = 2;
                            return true;
                        Label_00B1:
                            this.<>1__state = 1;
                        Label_00B9:;
                        }
                        this.<>m__Finally3();
                        break;

                    case 2:
                        goto Label_00B1;
                }
                return false;
            }
            fault
            {
                this.System.IDisposable.Dispose();
            }
        }

        [DebuggerHidden]
        IEnumerator<object> IEnumerable<object>.GetEnumerator()
        {
            if ((Thread.CurrentThread.ManagedThreadId == this.<>l__initialThreadId) && (this.<>1__state == -2))
            {
                this.<>1__state = 0;
                return (AccessBase<T>.<GetEnumerator>d__0) this;
            }
            AccessBase<T>.<GetEnumerator>d__0 d__ = new AccessBase<T>.<GetEnumerator>d__0(0);
            d__.<>4__this = this.<>4__this;
            return d__;
        }

        [DebuggerHidden]
        IEnumerator IEnumerable.GetEnumerator()
        {
            return this.System.Collections.Generic.IEnumerable<System.Object>.GetEnumerator();
        }

        [DebuggerHidden]
        void IEnumerator.Reset()
        {
            throw new NotSupportedException();
        }

        void IDisposable.Dispose()
        {
            switch (this.<>1__state)
            {
                case 1:
                case 2:
                    try
                    {
                    }
                    finally
                    {
                        this.<>m__Finally3();
                    }
                    break;
            }
        }

        // Properties
        object IEnumerator<object>.Current
        {
            [DebuggerHidden]
            get
            {
                return this.<>2__current;
            }
        }

        object IEnumerator.Current
        {
            [DebuggerHidden]
            get
            {
                return this.<>2__current;
            }
        }
    }

 

后来google了一下,发现是使用了yield关键字

了解yield:http://archive.cnblogs.com/a/1863845/

 

 

三、源码下载:http://files.cnblogs.com/salam/SilverChart.rar

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载