Telerik Grid Setting 使用网站项目但不使用 Web 应用程序

Telerik Grid Setting working with a web-site project but not with a web-application

我有一个网站项目需要转换为网络应用程序。在解决了所有编译错误后,我在从 Telerik's website 获得的一段代码中遇到了运行时异常。

在反序列化网格设置数据的部分出现异常

System.ArgumentException
  HResult=0x80070057
  Message=The serialized data is invalid.
  Source=BMS.WebApp
Inner Exception 1:
SerializationException: Unable to find assembly 'App_Code.5gd62bdt, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
public static GridSettingsCollection LoadFromSerializedData(string data)
        {
            LosFormatter formatter = new LosFormatter();
            // the line that throws the exception: formatter.Deserialize(data)
            return (GridSettingsCollection)formatter.Deserialize(data);
        }

当它是一个网站项目时,这没有问题。我猜测以 App_Code.* 开头的程序集通常意味着它是在运行时编译的。我尝试清除所有 ASP 临时文件夹。

非常感谢任何帮助。谢谢

这不是 Telerik 本身的问题,而是一般序列化的问题。 Telerik 示例中的 GridSettingsCollection 使用 [Serializable] 属性,后者又使用 BinaryFormatter 进行序列化。除了二进制对象数据,它还存储序列化对象的 class 元数据,包括程序集名称。

如果您更改程序集名称(将网站转换为 Web 应用程序时发生)并且您仍然需要使用旧的序列化数据,则必须使用 SerializationBinder as in this answer