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