Telerik网格设置可用于网站项目,但不能与网络应用程序一起使用

时间:2019-04-18 18:35:52

标签: c# asp.net telerik

我有一个网站项目,我需要将其转换为Web应用程序。解决所有编译错误后,我在从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);
        }

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

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

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

如果更改程序集名称(在将网站转换为Web应用程序时发生),并且仍然需要使用旧的序列化数据,则必须像在SerializationBinder中一样使用this answer。 / p>