C# - Object Serializable For AJAX - WCF And ViewState
Jun 30, 2010
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.
View 2 Replies
Similar Messages:
Dec 30, 2010
I'm a little green when it comes to streaming and serialization...but what i wanna do is make the Upload method on the server return a serializable object to the client (it is void right now). I have a public class ServiceResult that i decorate with [Serializable], and a public class FileTransferService that implements IFileTransferService
[ServiceContract()]
public interface IFileTransferService
{
[OperationContract(IsOneWay = false)]
string Upload(FileTransferRequest request);
}
The implementation does its thing, and then at the end i create and serialize the object and try to return the string
return ServiceResultSerializer.SerializeAnObject(result);
On the client side i call this service using this class
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IFileTransferService")]
public interface IFileTransferService
{
// CODEGEN: Generating message contract since the wrapper name (FileTransferRequest) of message FileTransferRequest does not match the default value (Upload)
[System.ServiceModel.OperationContractAttribute(IsOneWay = false, Action = "http://tempuri.org/IFileTransferService/Upload")]
string Upload(FileTransferRequest request);
}
I'm basically taking this project found on this blog: [URL] And trying to make it return a value that the client caller can use I get an error right now that says: The operation 'Upload' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters. Which i have no idea what it means :P I think cuz im trying to change the Service paramaters.
View 1 Replies
Jan 18, 2013
How to know the FileName AjaxFileUpload in the event Click of a Button without going through earnest for this is what I found that is to say that the FileName is only in the event Designed AjaxFileUpload1_UploadComplete.
protected void InsertButton_Click(object sender, EventArgs e) {
lblMSG.Text = ViewState["filename"].ToString();
}
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) {
ViewState["filename"] = e.FileName;
}
protected void AjaxFileUpload1_UploadComplete (object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) {
string filePath = "~ / upload /" + e.FileName;
AjaxFileUpload1.SaveAs (filePath);
}
View 1 Replies
Aug 6, 2010
Why to Serialize an object to store in ViewState?
View 1 Replies
Nov 17, 2010
When I try to save an object reference in a view state it tries to save the object content using serialisation. to save the object reference only to apply to this object instance after postback?
View 5 Replies
Sep 8, 2010
I'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.
View 4 Replies
Dec 29, 2010
I've got a listview on a control. Each row comprises a checkbox and another listview.
The outer listview is bound to a property on the control (via a method call, can't set a property as a SelectMethod on an ObjectDataSource it would appear) which is lazy loaded suchly:
[Code]....
The reason for the use of viewstate is this:
When an one of the checkboxes on one of the outer list view rows is checked or unchecked I want to modify the object that the ODS represents (for example I'll add a couple of Charge objects to the relevant Product object) and then rebind.
The problem I'm getting is that after every postback (specifically after checking or unchecking one of the rows' checkbox) my viewstate is empty. Thiss means that any changes I make to my viewstate'd object is lost.
Now, I've worked out (after much googling and reading, amongst many others, Scott Mitchel's excellent bit on ViewState) that during initial databinding IsTrackingViewState is set to false. That means, I think, that assigning the return from GetWebServiceProductLineChargeDetails() to the ViewState item in my Property Get during the initial databind won't work.
Mind you, even when the IsTrackingViewState is true and I call the Property Get, come the next postback, the viewstate is empty.
how I keep the object referenced by the ObjectDataSource in ViewState between postbacks and update it and get those changes to stay in ViewState?
View 1 Replies
Feb 6, 2011
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?
View 2 Replies
Sep 24, 2010
I have overridden the following methods:
LoadPageStateFromPersistenceMedium()
SavePageStateToPersistenceMedium(object viewState)
in a class that my page derives from, so that the viewstate can be stored in DB.
Now, on page_load of my page, I am checking what control caused a postback & based on that I am forcing execution of 2 button click events in a row (by overloading those click events & calling them explicitely), but the behaviour I want is as if the execution of those 2 button click events went through the regular page life cycle.
Here is the sequence of events that happen in typical page life cycle & notice I want to alter behaviour at step 4 (on load):
1) Initialization
2) LoadViewStateData (here the viewstate is loaded from my database using the overridden LoadPageStateFromPersistenceMedium)
3) LoadPostBackData
4) Load
Here, I would like to force execution of 2 button_click events based on whether a particular control posted back.
4.1) imgBtnPrev5_Click()
4.2) imgBtnPrev4_Click()
Now, when the imgBtnPrev5_Click() is executed, the viewstate is already loaded, so we are fine. But after execution of imgBtnPrev5_Click(), I would like to update the viewstate object in memory & then call the overridden SavePageStateToPersistenceMedium (by passing that updated viewstate object as its parameter) and then before execution of imgBtnPrev4_Click(), I would like to call the overridden LoadPageStateFromPersistenceMedium.
5) RaisePostBackEvent
6) SaveViewState
7) Render
My question is, how do I update the "viewstate" object of the page - that is passed to SavePageStateToPersistenceMedium with the changes made to the controls in imgBtnPrev5_Click()?
View 10 Replies
Mar 14, 2011
My application uses DataRows and they are not serializable. Is there any workaround for the same?
View 1 Replies
Nov 12, 2010
How can check whether a instance is marked as serializable?
View 4 Replies
Aug 16, 2010
I am changing my ASP.NET app to use a web farm. To do this, I need to change the session state from in-proc to a State Server. To do this, it is my understanding that the classes that are used must be marked as serializable. How can you tell if that is possible with a class? Will you get an error at compile time if it is not possible?
View 2 Replies
Nov 12, 2010
I follow the code snippet to calculate Session size. Profile Memory Usage of Session State ASP.Net My problem is some properties of objects aren't marked as Serializable so I cannot apply the solution. Can I just bypass non-serializable properties?
View 1 Replies
Feb 24, 2011
As the title says, I want to mark a property as non serializable by the JavascriptSerializer. How can achive that ?
View 1 Replies
Nov 10, 2010
I have CSLA (1.x framework) objects from an existing project that I'm trying to use in a new .Net 4.0 project. The objects are being used in production and I really can't convert them to 2.x or EF without having 2 sets of objects.
In my c# webservice (when I try to run it) I am getting the following error:
To be XML serializable, types which inherit from ICollection must have an implementation of Add(objectname.object) at all levels of their inheritance hierarchy. objectname.objectList does not
implement Add(objectname.object).
Like I said these objects are CSLA objects written in vb.net. I don't know where to look on this one. Is it an issue of .Net 4.0 trying to talk to CSLA 1.x or is it a web service issue (as these objects never used web services originally)?
Does anyone have an idea about where I should look to figure out this issue? Should I suggest converting to CSLA 2.x?
View 1 Replies
Jan 26, 2011
Specifically we're making our application compatible with the Out Of Process Session State server where all types saved in session must be serializable. Is there a way to see at compile time that any type put into HttpSessionState is marked with the Serializable attribute. Something along the lines of this 'non-valid' code
public static void Put<T>( string key, T value ) where T : IsMarkedWitheSerializableAttribute
{
HttpContext.Current.Session[key] = value;
}
View 2 Replies
Mar 28, 2011
I regularly run into the following error in my .NET 4.0 web application:
[Code]....
I found that the issue was already reported here: [URL], but there is no solution provided anywhere (at least, I didn't find it).
View 6 Replies
Oct 9, 2010
Now here is the weird thing. First i am running it locally on the built in vs2008 web server.I load my control in fine, do a postback from a linkbutton, locally on my machine it all works fine, no issue.However when it goes onto my host, it falls over with the message:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.Now i also load controls dynamically and use postbacks and things in the admin area of the site...and that works fine, however my front end just keeps failing? See the code behing below:
[Code]....
View 1 Replies
Jan 11, 2011
I have problem getting values from viewstate in GetTopThemes.
<asp:ObjectDataSource
ID="sourceGetTopThemes"
runat="server"
TypeName="DBConnection"
SelectMethod="GetTopThemes"
EnableViewState="true"></asp:ObjectDataSource>
[Code]....
}
[Code]....
when the page is not Posted back, I saved all values in the viewstate.
View 2 Replies
Apr 30, 2010
I have been getting this error a lot lately with some of my users, and I had a couple of concerns with view state and I have read so many articles but I am still lost..
1. I use masterpage on all the pages and I need viewstate for some of the pages but..
There is a page where a user will fill out the information and then submit this data to a cgi server, and it is where I get most of the Client Disconnected errors, what would happen if I disable viewstate when they click on that button?
Now when a user browses from one page to another, does the view state from the previous page get deleted? If not how would I delete it?
Does the master page have its own viewstate? Would I be able to make sure none of items on my master page are using the viewstate?
View 7 Replies
Sep 24, 2010
I have a shopping cart page (Cart.aspx) that has a button that will (sometimes) post to a third party payment gateway, if payment is necessary. The payment gateway will process the payment and then do a silent post to my website (Order.aspx) so I can update the order status.
Order.aspx always throws an invalid viewstate error, even though viewstate is disabled on the page.
What's happening is that Cart.aspx (which has viewstate enabled) posts to the payment gateway, and the gateway will post it back as part of the silent post. Even though Order.aspx has viewstate disabled and validation disabled, it still tries to validate the __viewstate field it's being given.
I know setting EnableViewState=false will disable the rendering of the __viewstate field, but if another page provides the field, shouldn't it still skip validation? I tried calling ViewState.Clear() on the Page_Init event of Order.aspx, but ViewState is apparently empty. how to get around this? I don't want to disable ViewState on Cart.aspx (in some cases it may be necessary), but I can't figure out how to clear it on Order.aspx.
View 1 Replies
Sep 3, 2010
I've got an ASP.NET 3.5 page with multiple ColorPickerExtender controls on it. The functionality works fine in that the selected color is displayed on the associated panel and text boxes, but when a postback is performed from a drop down list on the page, the colors are always reset to their initial values when the page was loaded.
View 2 Replies
Dec 29, 2010
I have a search page and it works most of the time but every now and then when I enter another word to search again, I kept getting this error in the Firefox's Error Console:
Error: Sys.WebForms.PageRequestManagerServerErrorException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. Source File: http://www.MyComp.com criptResource.axd?d=zNx0Fk9xi1ETKBw_Fc9MJ3a9Kp9CNPrHQDabGthwzSh32Wkw_OzriOYrMMZHyFSHnzqpp01wziW_tN0f9jEcZnJcMuTjBAcDB3ptDE0FILLyGwC956G8jI5pQ19F3beEYg0dkW9A9W-jBl1ZBsRms11V-vdOFaHdfpkaWww0H0tuL7am4AbVTa36mnOyWkDq0&t=2610f696 Line: 1508
View 7 Replies
Feb 24, 2010
I tried this in many scenarios and everytime the ViewState is disabled page-wide, NoBot raises an internal NullReferenceException and always returns InvalidBadSession. I suspect that you are referencing the ViewState and it returns a null value which is then used. It's probably a good idea to think about a way that avoids using ViewState.
View 1 Replies
Sep 10, 2010
I'm reading about the UpdatePanel and how it interacts with controls inside & outside of it.
My understanding is that the usual ASP.Net pipeline takes place when posting from within an UpdatePanel-- Page load etc all fire off as normal-- except when the prerendering stage is reached. In that case the ScriptManager does a final check and only renders those controls within the UpdatePanel and skips the rest. That's my understanding at least.
Sounds good, but for argument's sake let's say I have a TextBox located outside an UpdatePanel. If a postback occurs from within that panel, the TextBox's properties can still be set in the page load method, but those changes will not take effect. (normally; it is possible to postback the entire page from an UpdatePanel)
Is that correct? What happens to that TextBox's ViewState in this instance? Is it updated based on what happened to it in the page load method or is that modification tossed out because it wasn't in the UpdatePanel?
View 6 Replies