我试图:
((Request.Params["crmid"] != null))
在网页中。但它不断抛出一个序列化异常:
在程序集“QC.Security, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null”中键入“QC.Security.SL.SiteUser”未标记为可序列化。
然而,自定义 IIdentity 类型被标记为可序列化,如下所示:
[Serializable()]
public class SiteUser : IIdentity
{
private long _userId;
public long UserId { get { return _userId; } set { _userId = value; } }
private string _name;
public string Name { get { return _name; } }
private bool _isAuthenticated;
public bool IsAuthenticated { get { return _isAuthenticated; } }
private string _authenticationType;
public string AuthenticationType { get { return _authenticationType; } }
我不知道如何调试它,因为我无法进入序列化程序代码来找出它为什么会崩溃。调用堆栈只有一帧深,然后才命中 [外部代码]。鉴于该类型已明确标记为可序列化,因此该错误消息几乎毫无用处。试错调整也产生了一个Type is not resolved for member异常。
它工作正常。但是现在“突然”它并不意味着 Visual Studio 中有一些愚蠢的错误,但重新启动对“这个”时间没有帮助。所以现在我不知道这是一个愚蠢的VS错误还是一个完全不相关的错误,我得到了一个序列化异常或者我做错了什么。
事实上,我只是不再相信 VS,因为我在过去几个月里一直在进行的疯狂追逐的数量是通过重新启动 VS 2008 或其他一些可笑的解决方法来“修复”的。