以上问题是反序列化时出现的问题查看以前的贴子
http://expert.csdn.net/Expert/topic/1310/1310283.xml?temp=.5964319
发现了问题的原因后来我把实现接口的类单独编译成一个dll就可以了//-----------------------------------------------------
现在又有一个新的问题我把winform的程序嵌入到webform中,在winform的程序定义了两个方法,读取和保存序列化文件在网页中,可以保存文件,但是读取时,又出现了这个贴子提问的问题
//----------------------
分析错误,没有与 Xml 键 a1:http://schemas.microsoft.com/clr/nsassem/GM.Library/fokl2mkk%2C%20Version%3D0.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull MyObject 关联的程序集 
//-----------------------

解决方案 »

  1.   

    更正[在网页中,可以保存文件,但是读取时,又出现了这个贴子提问的问题]
    改为[在网页中,调用winform的方法,可以保存文件,但是读取时,又出现了上述问题]
      

  2.   

    这是我做的两个测试文件
    winform中的程序    序列化和反序列化都可以用
    http://www.lionsky.net/input.rarwinform嵌入到webform中   序列化可用,反序列化不可用
    http://www.lionsky.net/c_input.rar
      

  3.   

    运行winform嵌入到webform中要.net的安全里面要设置一下本地安全性
    C:\WINNT\Microsoft.NET\Framework\v1.0.3705\ConfigWizards.exe
     调整.net安全性[第一个]-->对计算机更改-->本地intranet设置为完全信任
      

  4.   

    Runtime Serializer(Soap和Binary)在deserialize的时候与要根据Stream中保存的信息加在对应的Assembly和类,如上面的:
    http://schemas.microsoft.com/clr/nsassem/GM.Library/fokl2mkk%2C%20Version%3D0.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull MyObject 
    实际上就是Assembly全名和具体的类名称。这时候Serializer使用的函数是Type.GetType,MSDN: GetType only works on assemblies loaded from disk. 所以对于动态加载的Assembly和从Server下载的在这种情况下就不能正常工作了。解决的方法是自己实现一个SerializationBinder,自行绑定类型:public class LionObjBinder : System.Runtime.Serialization.SerializationBinder 
    {
    public override Type BindToType(string assemblyName, string typeName)
    {
    Type result = null;
    System.Windows.Forms.MessageBox.Show("Binder: " + assemblyName + ", " + typeName);
    if (typeName.IndexOf("Lion.Data.MyObject") != -1) 
    {
    result = typeof(Lion.Data.MyObject);

    else 
    {
    result = Type.GetType(String.Format("{0}, {1}", typeName, assemblyName));
    }
    return result;
    }
    }//in FXL
    ...
    System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
    formatter.Binder = new LionObjBinder();
    ...
    Lion.Data.MyObject obj = (Lion.Data.MyObject) formatter.Deserialize(stream);
    ...
      

  5.   

    感谢qqchen79的回答,我想也只有您才可以解决这个问题
    :)我试一下