本帖最后由 devidxie 于 2009-11-02 10:10:31 编辑

解决方案 »

  1.   

    对于不可序列化的类,多数是存在运行时会改变的属性,比如播放器控件,它的播放内容就是会时刻改变。
    不过即使这样,我们还是可以找到这类控件的初始属性的,只要将它们的可写属性一一保存下来,存放到字典类中,序列化后传输过去再反序列化那些属性,就做到了手动序列化。
    另外建议你打开IncludeExceptionDetailInFaults,不然看不到服务器端错误信息。
      

  2.   

    如果是可以继承的类,你只要继承一下,修改只读属性或者添加自定义属性也可以达到属性序列化,我就是这么处理UI控件的,比如DataGridView的Columns属性,是只读的,而且内部有多少个列元素也是不确定的,不过也不是没有办法,继承这个类后,我们添加自定义属性,一个可以序列化的自定义属性,get方法中对Columns内所有列元素遍历,加载到List中,set方法中遍历List,使用Add方法添加列到Columns中。