解决方案 »

  1.   

    属性编译后会生成get和set方法,如果是只读属性只生成get方法而不生成set方法,所以反射不能给只读属性赋值
      

  2.   

    我没说应景反编译了,那个.net的反编译的工具导出的类库文件还是不是完全正确。编译通不过。
      

  3.   

    反射肯定达到LZ要求的,只是不是这么做的。
    你应该先看看this[string index]这个索引器是干嘛的。
      

  4.   

    this[string index]我估计那个是Reflector那个工具反编译有问题,导致显示成那样了。原本的写法应该
    get{return;}就是最原始的get访问器
      

  5.   

    只读的肯定不行。没有set怎么设置新值!
      

  6.   

    属性本质上就是个方法,没有Set函数就自己根据Get函数模拟啊
      

  7.   

    #7已经说了,先看看this[string index]这个索引器是如何实现的。
    它从哪里取值,你就给哪里赋值,除非它返回的是字符串常量。
      

  8.   

    从Reflector看到的代码,还真是返回的一个常量
      

  9.   

    如果它返回的是常量,比如public this[string index]
    {
        get
        {
            if (index == "hyqssConnectionString") return "Data Source=.\\MSSQL2005;Initial Catalog=xxx;User ID=test;Password=123456";
            return null;
        }
    }
    如果所有使用这个常量的地方都要改成同一个值,而且修改以后的字符串长度小于等于这个常量长度,你可以使用unsafe+fixed的指针模式来修改它。