Configuration :: Serialize An Object To Store In ViewState?
Aug 6, 2010Why to Serialize an object to store in ViewState?
View 1 RepliesWhy to Serialize an object to store in ViewState?
View 1 RepliesI've build a class like this:
[code]....
The values of this class are set at postback by clicking a radiobutton list. Problem however is I don't know how to save this values across multiple postbacks. I thought of using viewstate but I'm not quite sure how to do it with this class.
Maybe I'm missing some important thing here.
Hope someone can point me in the right direction.
My code is:
[code]....
When I run the program, an error occurs:
Unable to cast object of type 'System.Collections.Generic.List`1[System.Int32]' to type System.Int32[]'.
Why does this error occur?
I have a custom Javascript object that has a few string and float members. I'd like to serialize an array of them in Javascript, assign the result to a hidden field, and then retrieve and deserialize them in the codebehind for my asp.net application.
View 3 RepliesI'd like to serialize and deserialize an object using SilverLight.
View 2 RepliesI had an xml-serialization which worked fine, but as I have just knew it doesn't work in Opera browser. I think, it's security rules don't allow to write to cookies xml-content.What can I do? Can I use binary serialization or something else?
View 2 RepliesI would like to serialize the properties of the HttpBrowserCapibilities object so that it may be returned via a web method call. Currently the object cannot be serialized:Cannot serialize member System.Web.Configuration.HttpCapabilitiesBase.Capabilities of type System.Collections.IDictionary, because it implements IDictionary. ...which is understandable. However, I would like to simply copy out the properties and their values to a hierarchy, i.e.
<HttpBrowserCapabilities>
<IsMobile>true</IsMobile>
</HttpBrowserCapabilities>
I'm starting to think I would need to use reflection to copy this object, but I haven't reached a conclusion. Does anyone have any suggestions to keep this simple?
when application runs on local machine, it returns data correct, but when website hosted on server then it cannot retunrs data in jscript serialize
C#
JavaScriptSerializer jscript = new JavaScriptSerializer();
List<ListItem> items= new List<ListItem>();
return jscript.Serialize(items);
Javascript
var jsdata = JSON.parse(items);
I can tried save some data to ViewState, but i get this Error:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'HeRMeSSAAS.BussinesProcess.BussinesServices.CandidateService' of type 'HeRMeSSAAS.BussinesProcess.BussinesServices.CandidateService.'
Code:
private IActionService ActionService
{
get [code]...
How i can store value to ViewState?
EDIT: ViewState does not change when browser is refreshed, so even if you write to viewstate it will not save the data. i am trying to store a Queue in a viewstate (to track postbacks and refreshes to stop a form from resubmitting). The Queue is only saving with a count of 1 (the first item that is added to it) no matter how many items i add.
// New Queue of strings
private Queue<string> sTemp;
private Queue<string> p_tempQue
{
set
{
ViewState["sTemp"] = value;
}
get
{
return (Queue<string>)ViewState["sTemp"];
}
}
//BasePage constructor
public BasePage()
{
//create a Queue of string
//sTemp = new Queue<string>();
this.Load += new EventHandler(this.Page_Load);
this.Init += new EventHandler(this.Page_Init);
}
//In the 'page_Init' event we have created a simple hidden field by name 'hdnGuid' which is attached to the page on the first hit itself.
protected void Page_Init(object sender, EventArgs e)
{
//initializing the hidden field
//create a hidden field with a ID
HiddenField hdnGuid = new HiddenField();
hdnGuid.ID = "hdnGuid";
//if it is the first time the page is loaded, create a new guid and assign it as the hidden field value
if (!Page.IsPostBack)
hdnGuid.Value = Guid.NewGuid().ToString();
//add the hidden field to the page
Page.Form.Controls.Add(hdnGuid);
}
//In the 'page_Load' event we check if the hidden field value is same as the old value. In case the value is not same that means it's a 'postback'
//and if the value is same then its 'refresh'. As per situation we set the 'httpContent.Items["Refresh"]' value.
protected void Page_Load(object sender, EventArgs e)
{
if(p_tempQue != null)
sTemp = p_tempQue;
else
sTemp = new Queue<string>();
//The hdnGuid will be set the first time page is loaded, else the hdnGuid
//will be set after each time the form is submitted using javascript.
//assign the hidden field currently on the page for manipulation
HiddenField h1 = (HiddenField)(Page.Form.FindControl("hdnGuid"));
//create an instance of the GuidClass
GuidClass currentGuid = new GuidClass();
//set the GuidClass Guid property to the value of the hidden field
currentGuid.Guid = h1.Value;
//check to see if the Queue of strings contains the string which is the current Guid property of the GuidClass
//if the are equal, then the page was refreshed
if (sTemp.Contains<string>(currentGuid.Guid))
{
//adds item as key/value pair to share data between an System.Web.IHttpModule interface and an System.Web.IHttpHandler interface during an HTTP request.
System.Web.HttpContext.Current.Items.Add("IsRefresh", true);
}
//if they are not requal, the page is not refreshed
else
{
//if the current Guid property in the GuidClass is not null or not an empty string
//add the new Guid to the Queue
if (!(currentGuid.Guid.Equals(null) || currentGuid.Guid.Equals("")))
sTemp.Enqueue(currentGuid.Guid);
System.Web.HttpContext.Current.Items.Add("IsRefresh", false);
}
p_tempQue = sTemp;
}
I want to store some byte[] to ViewState. For example I want to store a list of FileBytes. How can I do it?
View 1 Repliescan we store viewstate other than in hidden field in asp.net
View 2 RepliesI want to store List<Class> object to ViewState, when i try to do this than its giving me error to make class serialize,but my class is partial class so didn't get serialize keyword on class how can i store List object to viewstate.
View 4 RepliesI'm trying to get asp.net to store viewstate in the session rather than bulking up the html.
Now i've read that asp.net comes with the SessionPageStatePersister which can be used instead of the default HiddenFieldPageStatePersister to do this. I was wondering how i go about dropping it in?
This is what i've got so far:
I think i need to create a PageAdapter that returns a SessionPageStatePersister from its GetStatePersister method, and somehow get the page to use this pageadapter. But Page.PageAdapter only has a getter, so i'm not sure how you set it.
See the 'remarks' heading here: [URL]
i want to store IQueryable value to ViewState. my code is as below:
Private
Property _Query()
As IQueryable
Get
Return
CType(ViewState("_Query"), IQueryable)
End
Get
Set(ByVal value
As IQueryable)
ViewState("_Query") = value
End
Set
but when i run my page i get following error:
Type 'System.Data.Linq.DataQuery`1[[DynamicQueries.VW_EmployeeProfile_Filter, DynamicQueries, ersion=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' in Assembly 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable
what should i do to get rid of this error. previously i was doing like this:
Private Shared _Query As IQueryable
but problem is that in Multi users environament, Shared variable is making problem, that is why i want to store it in ViewState.
public class Package
{
public Package()
{
name = "";
type = new List<Dictionary<string, string>>();
}
public string name { get; set; }
public List<Dictionary<string, string>> type { get; set; }
}
[code]...
How do you store multi-dimensional array to viewstate? Here's what I did:
public bool[,,] regsettings = new bool[7,5,4];
bool[,,] regsettings = (bool[,,])ViewState["regsettings"]; // this line works!
regsettings[i,j,tab] = (bool)ViewState["regsettings"]; // this line no working?! The error is: Object reference not set to an instance of an object. The letters i,j, tab are just variables in the loop. They are there. I also tried: (bool[,,,]) as a cast and it is a no-go either.?
The Title pretty much says it all but to clarify more I have a page with private properties that are storing a credit card object and a shopping cart object in viewstate so I can maintain a reference to them across postbacks. BTW the page involved will be using ssl. Is this safe?
View 6 RepliesI have a DataTable with about 10,000 rows in it.
I would like to store this data once for aspx page. When the user selects different options in the page, data is further selected from the already stored DataTable.
I tried using the ViewState, but as soon as the data grows beyond 100 rows, performance degrades.
In my website the page viewstate values in hidden are very large.So i wish to store this values into another methods(session,files etc).so please advice me to some methods..
View 3 RepliesI am working on a web app that will heavily rely on configuration. The configuration is also will be written by another process or human. I am looking to get response on best practices in .net 3.5 on how to implement this case. I had used the configuration section of an early version of the Enterprise Library Applications Block. I really liked working with it but from what I hear it is discontinued in current versions. Hence the question... Need to be able to serialize collections, pick up file write event to reload new instance of config into memory.
View 1 RepliesI have a public property that I use to store a GUID in the viewState:
Property myGUID()
As
Guid
Get
Return
CType(Me.ViewState("myGUID"),
Guid)
End
Get
Set(ByVal
value As
Guid)
Me.ViewState("myGUID")
= value
End
Set
End
Property
I include this code on many pages in my website...is there any way to migrate this to a common code file, so I don't have to repeat it on each page? If I try to add it to a class file, the "Me" part of course is out of scope.
I need to store viewstate in session to optimize my page performance on postback.
I am developing ASP.Net Website, using Visual Studio 2008.
I created a class named "BasePage" under "App_Code".
[Code]....
Now, I know if I inherit this class in all of my pages, that will work but I am looking to do this through Config file.
Is there any way that I can write something in Config file to use this class for all the pages?
so that if I want to remove, I can simply remove from config file and I do not need to compile my whole project again.
I'm currently creating a Class Library for DTOs and was wondering if I should store an ID or an Object
For example:
ProductDTO (class)
ID (Int32)
Code (String)
Description (String)
[Code]....
consider the following class and struct
public class Entity {
public IdType Id {get;set;}
public string Data {get;set;}
}
[TypeConverter(IdTypeConverter))]
public struct IdType {
... any data ...
}
The IdTypeConverter can convert the IdType struct from and to string. Now, what I want is this class to be serializable for AJAX, WCF and ViewState. The senario could be a WCF web service which provides as array of Entity[] to a DataSource. And a custom control which binds to the datasource, saves this class to it's ViewState and sends the data to client side code. This could be achieved easily by simply adding a [Serializable] attribute to all serialized types. But I don't want the IdType to be serialized, but to be converted to a string. Thus the JSON representation should be
{ 'Id'=>'StringRepresentationOfId', 'Data'=>'foo' }
This would analogously be the optimal serialization for WCF and ViewState. Another solution would be to write another class
public class JsonEntity {
public JsonEntity(Entity from) {
Id = from.Id;
Data = from.Data;
}
public string Id {get;set;}
public string Data {get;set;}
}
and use this for JsonSerialization. But I don't like this, because this would imply that the control which is sending the data to the client knows about the Entity type. The actual question is: Is it possible to customize JsonSerialization with attributes without breaking WCF and ViewState serialization? DIT: An answer like "That' impossible" would satify me, since I'd stop trying.