Веб-сервер моей хостинговой компании продолжает жаловаться, что класс не помечен как [Serializable].
Когда я запускаю его на своем локальном хосте, он работает нормально, без проблем. Как только я загружаю его на сервер, он просит меня сериализовать его?
Пример класса:
public class Notification
{
public string Message { get; set; }
public NotificationType NotificationType { get; set; }
public static Notification CreateSuccessNotification(string message)
{
return new Notification { Message = message, NotificationType = NotificationType.Success};
}
public static Notification CreateErrorNotification(string message)
{
return new Notification { Message = message, NotificationType = NotificationType.Error };
}
}
Который я использую в базовом контроллере. Этот класс сохраняется в TempData, когда происходит перенаправление на другой метод, может ли это быть причиной? Но все же, почему на сервере, а не на моем локальном компьютере?
public abstract class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
_notifications = TempData["Notifications"] == null ? new List<Notification>() : (List<Notification>)TempData["Notifications"];
_model = TempData["Model"];
base.OnActionExecuting(filterContext);
}
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
if (filterContext.Result is RedirectToRouteResult)
{
if (_model != null)
TempData["Model"] = _model;
if (_notifications.Count > 0)
TempData["Notifications"] = _notifications;
}
base.OnResultExecuting(filterContext);
}
}
Контроллер, переопределяющий этот, просто добавляет уведомления и модель, если это необходимо, а затем перенаправляет на другое действие.