【问题标题】:Problems with serializing a custom type in ASP.NET ViewState在 ASP.NET ViewState 中序列化自定义类型的问题
【发布时间】:2009-06-10 09:39:51
【问题描述】:

我有一个小结构,我想在我的 ViewState 中序列化。它看起来像这样:

[Serializable]
private struct DayMoney
{
    public readonly DateTime ValidFrom;
    public readonly string CurrencyCode;
    public readonly double Amount;
}

它序列化很好,但是当我执行回发/回调时,我得到一个反序列化的异常。包裹在一长串 InnerException 的根本原因似乎是:

找不到程序集“BussinessTripModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。

这有点荒谬,因为该程序集肯定会加载到当前的 AppDomain 中。

WTF?

【问题讨论】:

    标签: asp.net serialization viewstate


    【解决方案1】:

    这类问题很难诊断。

    我的建议是使用Fusion Log Viewer 来诊断找不到您的特定程序集的原因。请记住,Fuslogvw 的一些特定选项并不那么容易设置,幸运的是 google 可以为您提供很多帮助。

    但是,首先...公开你的结构,就像别人说的那样!!!

    【讨论】:

    • 公开也无济于事。 Fusion Log Viewer 看起来很有前途,但是您如何使用它呢? MSDN 文章不是很有帮助...
    • 啊,找到了。必须在我的 元素中添加另一条路径。仍然很奇怪,因为它肯定是在当前的 AppDomain 中加载的 - 为什么它还需要搜索一些路径?
    【解决方案2】:

    你的结构是私有的。反序列化发生在框架本身中,而不是在您的程序集中。可能是这个问题,把它公开,看看能不能解决它

    【讨论】:

    • 不,这根本解决不了问题。此外 - 如果框架无法找到这样的程序集,这会如何影响任何事情?
    • 嗯,我隐约希望它可能是一个错误的错误消息,它找到了程序集但无法访问该类。有时 MS 错误消息很糟糕 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多