Я пытаюсь:
((Request.Params["crmid"] != null))
на веб-странице. Но он продолжает выдавать исключение сериализации:
Введите 'QC.Security.SL.SiteUser' в
сборка "QC.Security,
Версия = 1.0.0.1, Культура = нейтральная,
PublicKeyToken = null 'не помечен как
сериализации.
Тип, пользовательский 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; } }
Я не знаю, как отладить это, так как не могу войти в код сериализатора, чтобы выяснить, почему он падает. Стек вызовов имеет глубину всего в один кадр, прежде чем он достигнет [Внешний код]. И сообщение об ошибке почти бесполезно, учитывая, что тип четко помечен как сериализуемый. Метод проб и ошибок также приводил к тому, что тип не разрешен для исключения члена.
Работало нормально. Но теперь «внезапно» это не так, что обычно означает какую-то глупую ошибку в Visual Studio, но перезагрузка не помогает «в этот раз». Так что теперь я не знаю, является ли это глупой ошибкой VS или совершенно не связанной ошибкой, для которой я получаю исключение сериализации или что-то я делаю неправильно.
Правда в том, что я просто больше не доверяю VS, учитывая количество погонь за диким гусем, которые я выполнял в течение последних нескольких месяцев, которые были "исправлены" перезагрузкой VS 2008 или каким-либо другим нелепым решением.